imageFileView method

dynamic imageFileView(
  1. dynamic context,
  2. dynamic ref,
  3. dynamic mediaState
)

Implementation

Widget imageFileView(
  BuildContext context,
  WidgetRef ref,
  MediaChatState mediaState,
) {
  return Image.file(
    mediaState.mediaFile!,
    frameBuilder: (
      BuildContext context,
      Widget child,
      int? frame,
      bool wasSynchronouslyLoaded,
    ) {
      if (wasSynchronouslyLoaded) {
        return child;
      }
      return AnimatedOpacity(
        opacity: frame == null ? 0 : 1,
        duration: const Duration(seconds: 1),
        curve: Curves.easeOut,
        child: child,
      );
    },
    errorBuilder: (
      BuildContext context,
      Object error,
      StackTrace? stack,
    ) =>
        ActerInlineErrorButton.icon(
      icon: Icon(PhosphorIcons.imageBroken()),
      error: error,
      stack: stack,
      textBuilder: L10n.of(context).couldNotLoadImage,
      onRetryTap: () {
        final ChatMessageInfo messageInfo =
            (messageId: message.remoteId ?? message.id, roomId: roomId);
        ref.invalidate(mediaChatStateProvider(messageInfo));
      },
    ),
    fit: BoxFit.cover,
  );
}