From 29b03ae69134675ae0f5eb47cd89e7fe73f85a9b Mon Sep 17 00:00:00 2001 From: Aline Bonnet Date: Sun, 18 Aug 2024 16:32:09 +0200 Subject: [PATCH] feat: send only selected pictures --- lib/page/collection_creation_page.dart | 47 +++++++++++++++++++++----- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/lib/page/collection_creation_page.dart b/lib/page/collection_creation_page.dart index 7125dea..b960b79 100644 --- a/lib/page/collection_creation_page.dart +++ b/lib/page/collection_creation_page.dart @@ -23,6 +23,8 @@ class CollectionCreationPageState extends State { ]); } + final Map _selectedFiles = {}; + @override void initState() { SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, @@ -31,12 +33,19 @@ class CollectionCreationPageState extends State { DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); + for (var file in widget.imgList) { + _selectedFiles[file] = true; + } super.initState(); } void goToInstancePage() { + final list = _selectedFiles.entries + .where((entry) => entry.value) + .map((entry) => entry.key) + .toList(); GetIt.instance() - .pushTo(Routes.instance, arguments: widget.imgList); + .pushTo(Routes.instance, arguments: list); } @override @@ -66,14 +75,8 @@ class CollectionCreationPageState extends State { spacing: 8, runSpacing: 8, children: [ - ...widget.imgList - .map((item) => Container( - height: 100, - child: Image.file( - item, - fit: BoxFit.cover, - ))) - .toList() + for (var file in _selectedFiles.keys) + PictureItem(file), ], )))), Padding( @@ -91,4 +94,30 @@ class CollectionCreationPageState extends State { ), )); } + + Widget PictureItem(File file) { + return Stack( + alignment: Alignment.bottomRight, + children: [ + Container( + height: 80, + child: Image.file( + file, + fit: BoxFit.cover, + )), + SizedBox( + height: 24.0, + width: 24.0, + child: Checkbox( + value: _selectedFiles[file], + onChanged: (value) { + setState(() { + _selectedFiles[file] = value!; + }); + }, + ), + ) + ], + ); + } }