webOrDesktopAttachmentPickerBuilder function
Widget
webOrDesktopAttachmentPickerBuilder({
- required BuildContext context,
- required StreamAttachmentPickerController controller,
- Iterable<
WebOrDesktopAttachmentPickerOption> ? customOptions, - ThumbnailSize attachmentThumbnailSize = const ThumbnailSize(400, 400),
- ThumbnailFormat attachmentThumbnailFormat = ThumbnailFormat.jpeg,
- int attachmentThumbnailQuality = 100,
- double attachmentThumbnailScale = 1,
Returns the web or desktop version of the attachment picker.
Implementation
Widget webOrDesktopAttachmentPickerBuilder({
required BuildContext context,
required StreamAttachmentPickerController controller,
Iterable<WebOrDesktopAttachmentPickerOption>? customOptions,
ThumbnailSize attachmentThumbnailSize = const ThumbnailSize(400, 400),
ThumbnailFormat attachmentThumbnailFormat = ThumbnailFormat.jpeg,
int attachmentThumbnailQuality = 100,
double attachmentThumbnailScale = 1,
}) {
return StreamWebOrDesktopAttachmentPickerBottomSheet(
controller: controller,
options: {
if (customOptions != null) ...customOptions,
WebOrDesktopAttachmentPickerOption(
key: 'image-picker',
type: AttachmentPickerType.images,
icon: StreamSvgIcon.pictures(size: 36).toIconThemeSvgIcon(),
title: 'Upload a photo',
),
WebOrDesktopAttachmentPickerOption(
key: 'video-picker',
type: AttachmentPickerType.videos,
icon: StreamSvgIcon.record(size: 36).toIconThemeSvgIcon(),
title: 'Upload a video',
),
WebOrDesktopAttachmentPickerOption(
key: 'file-picker',
type: AttachmentPickerType.files,
icon: StreamSvgIcon.files(size: 36).toIconThemeSvgIcon(),
title: 'Upload a file',
),
},
onOptionTap: (context, controller, option) async {
final attachment = await StreamAttachmentHandler.instance.pickFile(
type: option.type.fileType,
);
if (attachment != null) {
await controller.addAttachment(attachment);
}
return Navigator.pop(context, controller.value);
},
);
}