gallery_picker/lib/user_widgets/photo_provider.dart
2023-01-20 09:58:21 +03:00

46 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
import '../models/media_file.dart';
class PhotoProvider extends StatelessWidget {
final MediaFile media;
final BoxFit fit;
final double? width, height;
final Color? backgroundColor;
final Widget Function(BuildContext context)? onFailBuilder;
const PhotoProvider({
super.key,
required this.media,
this.onFailBuilder,
this.fit = BoxFit.contain,
this.backgroundColor,
this.width,
this.height,
});
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: media.getData(),
builder: ((context, snapshot) {
return Container(
color: backgroundColor,
width: width,
height: height,
child: (snapshot.hasError && onFailBuilder != null)
? onFailBuilder!(context)
: (snapshot.hasData)
? FadeInImage(
fadeInDuration: const Duration(milliseconds: 200),
fit: BoxFit.cover,
placeholder: MemoryImage(kTransparentImage),
image: MemoryImage(snapshot.data!),
)
: const SizedBox(),
);
}),
);
}
}