From 7e44ce632358945ec0a135bc93d5ddeb5842a973 Mon Sep 17 00:00:00 2001 From: Amir Panahandeh Date: Tue, 12 Dec 2023 19:52:10 +0330 Subject: [PATCH 1/5] Remove input element after completion --- .../example/integration_test/image_picker_for_web_test.dart | 5 +++++ .../image_picker_for_web/lib/image_picker_for_web.dart | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart b/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart index 5a3af7eab57..debd5d0ba6d 100644 --- a/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart +++ b/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart @@ -50,6 +50,9 @@ void main() { source: ImageSource.camera, ); + expect(html.querySelector('flt-image-picker-inputs')?.children.isEmpty, + isFalse); + // Mock the browser behavior of selecting a file... mockInput.dispatchEvent(html.Event('change')); @@ -68,6 +71,8 @@ void main() { completion( DateTime.fromMillisecondsSinceEpoch(textFile.lastModified!), )); + expect(html.querySelector('flt-image-picker-inputs')?.children.isEmpty, + isTrue); }); testWidgets('getMultiImageWithOptions can select multiple files', ( diff --git a/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart b/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart index b54b68ac550..13a2397b891 100644 --- a/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart +++ b/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart @@ -158,7 +158,7 @@ class ImagePickerPlugin extends ImagePickerPlatform { ) as html.FileUploadInputElement; _injectAndActivate(input); - return _getSelectedXFiles(input); + return _getSelectedXFiles(input).whenComplete(() => _remove(input)); } // Deprecated methods follow... @@ -320,6 +320,9 @@ class ImagePickerPlugin extends ImagePickerPlatform { // TODO(dit): Reimplement this with the showPicker() API, https://github.com/flutter/flutter/issues/130365 element.click(); } + + /// Removes the file input element + void _remove(html.Element element) => _target.children.clear(); } // Some tools to override behavior for unit-testing From 9947d0c68b490678b35b4ebad2052d6524d2083e Mon Sep 17 00:00:00 2001 From: Amir Panahandeh Date: Tue, 12 Dec 2023 20:43:01 +0330 Subject: [PATCH 2/5] Format --- .../example/integration_test/image_picker_for_web_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart b/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart index debd5d0ba6d..94adce2411e 100644 --- a/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart +++ b/packages/image_picker/image_picker_for_web/example/integration_test/image_picker_for_web_test.dart @@ -52,7 +52,7 @@ void main() { expect(html.querySelector('flt-image-picker-inputs')?.children.isEmpty, isFalse); - + // Mock the browser behavior of selecting a file... mockInput.dispatchEvent(html.Event('change')); From 7b544869e6ad3eea540caa27a5a9de24cec5017a Mon Sep 17 00:00:00 2001 From: Amir Panahandeh Date: Tue, 12 Dec 2023 20:50:52 +0330 Subject: [PATCH 3/5] Update CHANGELOG and version --- packages/image_picker/image_picker_for_web/CHANGELOG.md | 3 ++- packages/image_picker/image_picker_for_web/pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/image_picker/image_picker_for_web/CHANGELOG.md b/packages/image_picker/image_picker_for_web/CHANGELOG.md index 6b01e90c0e0..42111555330 100644 --- a/packages/image_picker/image_picker_for_web/CHANGELOG.md +++ b/packages/image_picker/image_picker_for_web/CHANGELOG.md @@ -1,6 +1,7 @@ -## NEXT +## 3.0.2 * Updates minimum supported SDK version to Flutter 3.10/Dart 3.0. +* Removes input element after completion ## 3.0.1 diff --git a/packages/image_picker/image_picker_for_web/pubspec.yaml b/packages/image_picker/image_picker_for_web/pubspec.yaml index 4a1c4ea861e..65c8196de80 100644 --- a/packages/image_picker/image_picker_for_web/pubspec.yaml +++ b/packages/image_picker/image_picker_for_web/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker_for_web description: Web platform implementation of image_picker repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_for_web issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22 -version: 3.0.1 +version: 3.0.2 environment: sdk: ">=3.0.0 <4.0.0" From 9a0fcd6b41991995c8acbda88adbc8598548ff57 Mon Sep 17 00:00:00 2001 From: Amir Panahandeh Date: Tue, 12 Dec 2023 21:14:53 +0330 Subject: [PATCH 4/5] Update AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d145538022d..543b9813fe2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -74,3 +74,4 @@ Twin Sun, LLC Amir Panahandeh Daniele Cambi Michele Benedetti +Taskulu LDA \ No newline at end of file From 1cd98cb005e255da54584b8bd06ca79c863a7ebe Mon Sep 17 00:00:00 2001 From: Amir Panahandeh Date: Thu, 14 Dec 2023 23:25:43 +0330 Subject: [PATCH 5/5] Simplify --- .../image_picker_for_web/lib/image_picker_for_web.dart | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart b/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart index 13a2397b891..315b7ddd446 100644 --- a/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart +++ b/packages/image_picker/image_picker_for_web/lib/image_picker_for_web.dart @@ -158,7 +158,7 @@ class ImagePickerPlugin extends ImagePickerPlatform { ) as html.FileUploadInputElement; _injectAndActivate(input); - return _getSelectedXFiles(input).whenComplete(() => _remove(input)); + return _getSelectedXFiles(input).whenComplete(input.remove); } // Deprecated methods follow... @@ -320,9 +320,6 @@ class ImagePickerPlugin extends ImagePickerPlatform { // TODO(dit): Reimplement this with the showPicker() API, https://github.com/flutter/flutter/issues/130365 element.click(); } - - /// Removes the file input element - void _remove(html.Element element) => _target.children.clear(); } // Some tools to override behavior for unit-testing