[FIX] Fixed disabled items status in chip selector
This commit is contained in:
@@ -187,11 +187,15 @@ class _AstromicChipSelectorState<T> extends State<AstromicChipSelector<T>> {
|
|||||||
bool isEnabled = currentItem.$2;
|
bool isEnabled = currentItem.$2;
|
||||||
bool isSelected = selectedItems.contains(currentItem.$1);
|
bool isSelected = selectedItems.contains(currentItem.$1);
|
||||||
bool isPreviousItemSelected = selectedItems.contains(previousItem);
|
bool isPreviousItemSelected = selectedItems.contains(previousItem);
|
||||||
|
bool isPreviousItemDisabled = currentIndex == 0 ? false : !widget.items[widget.items.indexOf(currentItem) - 1].$2;
|
||||||
bool isNextItemSelected = selectedItems.contains(nextItem);
|
bool isNextItemSelected = selectedItems.contains(nextItem);
|
||||||
|
bool isNextItemDisabled = currentIndex == widget.items.length - 1 ? false : !widget.items[widget.items.indexOf(currentItem) + 1].$2;
|
||||||
// ---
|
// ---
|
||||||
bool canBeSelected = (isConsequent && isEnabled && !isSelected && selectedItems.length < (configuration.maxSelectedItems) && (isPreviousItemSelected || currentIndex == 0)) ||
|
bool canBeSelected =
|
||||||
(!isConsequent && isEnabled && !isSelected && selectedItems.length < (configuration.maxSelectedItems));
|
(isConsequent && isEnabled && !isSelected && selectedItems.length < (configuration.maxSelectedItems) && (isPreviousItemSelected || currentIndex == 0 || isPreviousItemDisabled)) ||
|
||||||
bool canbeUnselected = (isConsequent && isEnabled && isSelected && (!isNextItemSelected || currentIndex == widget.items.length - 1)) || (!isConsequent && isEnabled && isSelected);
|
(!isConsequent && isEnabled && !isSelected && selectedItems.length < (configuration.maxSelectedItems));
|
||||||
|
bool canbeUnselected =
|
||||||
|
(isConsequent && isEnabled && isSelected && (!isNextItemSelected || isNextItemDisabled || currentIndex == widget.items.length - 1)) || (!isConsequent && isEnabled && isSelected);
|
||||||
// ---
|
// ---
|
||||||
bool tapable = (isSelected && canbeUnselected) || (!isSelected && canBeSelected);
|
bool tapable = (isSelected && canbeUnselected) || (!isSelected && canBeSelected);
|
||||||
// ---
|
// ---
|
||||||
|
|||||||
Reference in New Issue
Block a user