usercomments static method

Widget usercomments(
  1. BuildContext context, {
  2. required String text,
  3. required User user,
  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 usercomments(
  BuildContext context, {
  required String text,
  required User user,
  required Function({
    required int userID,
    required String username,
    required String displayname,
    required Media avatar,
    required Media? banner,
  }) profileFunction,
}) {
  final textSpans = <InlineSpan>[];
  textSpans.add(
    TextSpan(
      children: [
        TextSpan(
          text: user.displayName!.value,
          style: TextStyle(
            color: Get.theme.primaryColor,
            fontWeight: FontWeight.bold,
          ),
          recognizer: TapGestureRecognizer()
            ..onTap = () {
              profileFunction(
                userID: user.userID!,
                username: user.userName!.value,
                displayname: user.displayName!.value,
                avatar: Media(
                  mediaID: 0,
                  mediaType: MediaType.image,
                  mediaURL: MediaURL(
                    bigURL: user.avatar!.mediaURL.bigURL,
                    normalURL: user.avatar!.mediaURL.normalURL,
                    minURL: user.avatar!.mediaURL.minURL,
                  ),
                ),
                banner: null,
              );
            },
        )
      ],
    ),
  );

  textSpans.add(
    TextSpan(
      text: " $text",
      style: TextStyle(
        color: Get.theme.primaryColor,
      ),
    ),
  );

  textSpans.insert(0, const WidgetSpan(child: SizedBox(width: 5)));
  textSpans.insert(
    0,
    WidgetSpan(
      child: InkWell(
        onTap: () {
          profileFunction(
            userID: user.userID!,
            username: user.displayName!.value,
            displayname: user.displayName!.value,
            avatar: Media(
              mediaID: 0,
              mediaType: MediaType.image,
              mediaURL: MediaURL(
                bigURL: user.avatar!.mediaURL.bigURL,
                normalURL: user.avatar!.mediaURL.normalURL,
                minURL: user.avatar!.mediaURL.minURL,
              ),
            ),
            banner: null,
          );
        },
        child: CircleAvatar(
          backgroundColor: Colors.transparent,
          foregroundImage: CachedNetworkImageProvider(
            user.avatar!.mediaURL.minURL.value,
          ),
          radius: 8,
        ),
      ),
    ),
  );
  return RichText(
    text: TextSpan(children: textSpans),
  );
}