diff --git a/lib/src/Selectors/src/Chip/chip.selector.dart b/lib/src/Selectors/src/Chip/chip.selector.dart index ff41ddb..65d245f 100644 --- a/lib/src/Selectors/src/Chip/chip.selector.dart +++ b/lib/src/Selectors/src/Chip/chip.selector.dart @@ -180,16 +180,16 @@ class _AstromicChipSelectorState extends State> { AstromicChipSelectorConfiguration configuration = widget.configuration ?? const AstromicChipSelectorConfiguration(); // int currentIndex = widget.items.indexOf(currentItem); - T? previousItem = currentIndex == 0 ? null : widget.items[widget.items.indexOf(currentItem) - 1].$1; - T? nextItem = currentIndex == widget.items.length - 1 ? null : widget.items[widget.items.indexOf(currentItem) + 1].$1; + (T item, bool isEnabled)? previousItem = currentIndex == 0 ? null : widget.items[widget.items.indexOf(currentItem) - 1]; + (T item, bool isEnabled)? nextItem = currentIndex == widget.items.length - 1 ? null : widget.items[widget.items.indexOf(currentItem) + 1]; bool isConsequent = configuration.isConsequent; // bool isEnabled = currentItem.$2; bool isSelected = selectedItems.contains(currentItem.$1); - bool isPreviousItemSelected = selectedItems.contains(previousItem); - bool isPreviousItemDisabled = currentIndex == 0 ? false : !widget.items[widget.items.indexOf(currentItem) - 1].$2; - bool isNextItemSelected = selectedItems.contains(nextItem); - bool isNextItemDisabled = currentIndex == widget.items.length - 1 ? false : !widget.items[widget.items.indexOf(currentItem) + 1].$2; + bool isPreviousItemSelected = selectedItems.contains(previousItem?.$1); + bool isPreviousItemDisabled = !(previousItem?.$2 ?? false); + bool isNextItemSelected = selectedItems.contains(nextItem?.$1); + bool isNextItemDisabled = !(nextItem?.$2 ?? false); // --- bool canBeSelected = (isConsequent && isEnabled && !isSelected && selectedItems.length < (configuration.maxSelectedItems) && (isPreviousItemSelected || currentIndex == 0 || isPreviousItemDisabled)) || @@ -202,6 +202,9 @@ class _AstromicChipSelectorState extends State> { bool canShowClear = configuration.withClearButton && canbeUnselected; // --- // + debugPrint( + 'item: ${currentItem.$1}, isEnabled: ${currentItem.$2}, canBeSelected: $canBeSelected, canBeUnselected: $canbeUnselected, previous disabled: $isPreviousItemDisabled, next disabled: $isNextItemDisabled'); + // return widget.itemBuilder( currentItem.$1, isEnabled,