builder method
Implementation
@override
Widget builder(BuildContext context, theme) {
return FeedbackWidget(
onTap: onTap,
isEnabled: onTap != null,
child: ClipRRect(
borderRadius: theme.borderRadius ?? BorderRadius.zero,
child: Stack(
children: [
Builder(
builder: (context) {
if (_isPdf) {
return FilePickerPreviewPdfWidget(
file: file,
fit: theme.fit ?? BoxFit.cover,
aspectRatio: theme.aspectRatio ?? 1,
errorBuilder: (_, file) => FilePickerPrevieErrorWidget(file),
);
}
if (file.file != null) {
return FilePickerPreviewFileWidget(
file: file,
aspectRatio: theme.aspectRatio ?? 1,
fit: theme.fit ?? BoxFit.cover,
errorBuilder: (_, file) => FilePickerPrevieErrorWidget(file),
);
}
return ImageWidget.aspect(
file.id,
margin: .zero,
aspectRatio: theme.aspectRatio ?? 1,
fit: theme.fit ?? BoxFit.cover,
errorWidget: FilePickerPrevieErrorWidget(file),
);
},
),
Positioned(
bottom: actionPadding.bottom,
right: actionPadding.right,
child: Builder(
builder: (context) {
if (file.isLoading) {
return LoadingWidget(
theme: theme.loadingThemeData,
margin: loadingMargin,
);
}
if (actionBuilder != null) {
return actionBuilder!.call(file);
}
return const SizedBox.shrink();
},
),
),
],
),
),
);
}