From 0842d94d95f3200201c0119b1f1ecc111f38b019 Mon Sep 17 00:00:00 2001 From: mogelbuster Date: Wed, 30 Aug 2023 17:48:46 -0400 Subject: [PATCH] Fix for duplicate values using setState Fix for duplicate values appearing for each call to setState when initializing MultiSelectContainer with pre-selected items. --- .../lib/src/containers/multi_select_container.dart | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/flutter_multi_select/lib/src/containers/multi_select_container.dart b/flutter_multi_select/lib/src/containers/multi_select_container.dart index 606e442..12fc136 100644 --- a/flutter_multi_select/lib/src/containers/multi_select_container.dart +++ b/flutter_multi_select/lib/src/containers/multi_select_container.dart @@ -119,7 +119,7 @@ class _SimpleMultiSelectContainerState @override void didUpdateWidget(MultiSelectContainer oldWidget) { - _addInitiallySelectedItemsToSelectedList(); + _setPerpetualSelectedItemsCount(); if (widget.controller != null) { widget.controller!.deselectAll = oldWidget.controller!.deselectAll; widget.controller!.getSelectedItems = @@ -129,7 +129,7 @@ class _SimpleMultiSelectContainerState super.didUpdateWidget(oldWidget); } - //add initially selected items and find perpetual selected items count + // add initially selected items and find perpetual selected items count void _addInitiallySelectedItemsToSelectedList() { final initiallySelected = _items .where((item) => item.selected || item.perpetualSelected) @@ -140,6 +140,13 @@ class _SimpleMultiSelectContainerState setState(() {}); } + // find perpetual selected items count + void _setPerpetualSelectedItemsCount() { + _perpetualSelectedItemsCount = + _items.where((item) => item.perpetualSelected).length; + setState(() {}); + } + // Deselect all selected items excluding Perpetual Selected Items // for controller deselect call back void _deSelectAll() {