commentlistv2 static method

Widget commentlistv2(
  1. BuildContext context,
  2. Comment comment,
  3. ARMOYUServices service, {
  4. required dynamic profileFunction({
    1. required Media? avatar,
    2. required Media? banner,
    3. required String? displayname,
    4. required int userID,
    5. required String username,
    }),
})

Implementation

static Widget commentlistv2(
  BuildContext context,
  Comment comment,
  ARMOYUServices service, {
  required Function({
    required int userID,
    required String username,
    required String? displayname,
    required Media? avatar,
    required Media? banner,
  }) profileFunction,
}) {
  String uniqueTag = DateTime.now().millisecondsSinceEpoch.toString();

  final controller = Get.put(
    PostscommentControllerV2(comment: comment, service: service),
    tag: "${comment.commentID}-$uniqueTag",
  );
  return GestureDetector(
    onDoubleTap: () {
      controller.likeButtonKey.value.currentState?.onTap();
    },
    child: Container(
      color: Get.theme.scaffoldBackgroundColor,
      child: Row(
        children: [
          Expanded(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                CustomText.usercomments(
                  context,
                  text: controller.comment.content,
                  user: User(
                    userID: controller.comment.user.userID,
                    userName: controller.comment.user.userName,
                    displayName: Rx(
                      controller.comment.user.displayName!.value,
                    ),
                    avatar: Media(
                      mediaID: 0,
                      mediaType: MediaType.image,
                      mediaURL: MediaURL(
                        bigURL: Rx(
                          controller
                              .comment.user.avatar!.mediaURL.bigURL.value,
                        ),
                        normalURL: Rx(
                          controller
                              .comment.user.avatar!.mediaURL.normalURL.value,
                        ),
                        minURL: Rx(
                          controller
                              .comment.user.avatar!.mediaURL.minURL.value,
                        ),
                      ),
                    ),
                  ),
                  profileFunction: profileFunction,
                ),
              ],
            ),
          ),
          Obx(
            () => Padding(
              padding: const EdgeInsets.all(4.0),
              child: LikeButton(
                key: controller.likeButtonKey.value,
                isLiked: controller.comment.didIlike,
                likeCount: controller.comment.likeCount,
                onTap: (isLiked) async =>
                    await controller.postLike(isLiked, service),
                likeBuilder: (bool isLiked) {
                  return Icon(
                    isLiked ? Icons.favorite : Icons.favorite_outline,
                    color: isLiked ? Colors.red : Colors.grey,
                    size: 15,
                  );
                },
              ),
            ),
          ),
        ],
      ),
    ),
  );
}