File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -82,6 +82,14 @@ class FormBuilderImagePicker extends FormBuilderFieldDecoration<List<dynamic>> {
8282
8383 final void Function (Image )? onImage;
8484
85+ /// use this to apply changes on selected images before applying didChange.
86+ ///
87+ /// ```dart
88+ /// (images, remainingImages) => (null != remainingImages && images.length > remainingImages) ? images.take(remainingImages) : images;
89+ /// ```
90+ final Iterable <XFile > Function (Iterable <XFile > images, int ? remainingImages)?
91+ onImageSelected;
92+
8593 /// maximum images to pick
8694 ///
8795 /// also see [showDecoration] ,[previewAutoSizeWidth]
@@ -162,6 +170,7 @@ class FormBuilderImagePicker extends FormBuilderFieldDecoration<List<dynamic>> {
162170 this .imageQuality,
163171 this .preferredCameraDevice = CameraDevice .rear,
164172 this .onImage,
173+ this .onImageSelected,
165174 this .maxImages,
166175 this .cameraIcon = const Icon (Icons .camera_enhance),
167176 this .galleryIcon = const Icon (Icons .image),
@@ -230,7 +239,11 @@ class FormBuilderImagePicker extends FormBuilderFieldDecoration<List<dynamic>> {
230239 availableImageSources: availableImageSources,
231240 onImageSelected: (image) {
232241 state.focus ();
233- field.didChange ([...value, ...image]);
242+ field.didChange ([
243+ ...value,
244+ ...(onImageSelected? .call (image, remainingImages) ??
245+ image),
246+ ]);
234247 Navigator .pop (state.context);
235248 },
236249 );
You can’t perform that action at this time.
0 commit comments