This commit is contained in:
Deven Joshi
2021-05-05 17:47:58 +05:30
parent dca6b10c41
commit 09c6799af8
4 changed files with 81 additions and 69 deletions
@@ -9,14 +9,7 @@ import 'stream_svg_icon.dart';
import 'video_service.dart';
class VideoThumbnailImage extends StatefulWidget {
final String video;
final double? width;
final double? height;
final BoxFit? fit;
final ImageFormat format;
final Widget Function(BuildContext, Object?)? errorBuilder;
final WidgetBuilder? placeholderBuilder;
/// Constructor for creating [VideoThumbnailImage]
const VideoThumbnailImage({
Key? key,
required this.video,
@@ -28,6 +21,25 @@ class VideoThumbnailImage extends StatefulWidget {
this.placeholderBuilder,
}) : super(key: key);
/// Video path
final String video;
/// Width of widget
final double? width;
/// Height of widget
final double? height;
/// Fit of iamge
final BoxFit? fit;
/// Image format
final ImageFormat format;
/// Builds widget on error
final Widget Function(BuildContext, Object?)? errorBuilder;
final WidgetBuilder? placeholderBuilder;
@override
_VideoThumbnailImageState createState() => _VideoThumbnailImageState();
}
@@ -56,11 +68,9 @@ class _VideoThumbnailImageState extends State<VideoThumbnailImage> {
}
@override
Widget build(BuildContext context) {
return FutureBuilder<Uint8List?>(
Widget build(BuildContext context) => FutureBuilder<Uint8List?>(
future: thumbnailFuture,
builder: (context, snapshot) {
return AnimatedSwitcher(
builder: (context, snapshot) => AnimatedSwitcher(
duration: const Duration(milliseconds: 350),
child: Builder(
key: ValueKey<AsyncSnapshot<Uint8List?>>(snapshot),
@@ -73,7 +83,7 @@ class _VideoThumbnailImageState extends State<VideoThumbnailImage> {
}
if (!snapshot.hasData) {
return Container(
constraints: BoxConstraints.expand(),
constraints: const BoxConstraints.expand(),
child: widget.placeholderBuilder?.call(context) ??
Shimmer.fromColors(
baseColor: StreamChatTheme.of(context)
@@ -97,8 +107,6 @@ class _VideoThumbnailImageState extends State<VideoThumbnailImage> {
);
},
),
);
},
),
);
}
}