diff --git a/lib/src/Selectors/selectors.astromic.dart b/lib/src/Selectors/selectors.astromic.dart index a05f684..7aca7b1 100644 --- a/lib/src/Selectors/selectors.astromic.dart +++ b/lib/src/Selectors/selectors.astromic.dart @@ -14,8 +14,7 @@ class AstromicSelectors { // double? itemSpacing = 4, // - required Widget Function(T item, {VoidCallback? onTap, bool isSelected}) itemBuilder, - Widget Function(T item)? disabledItemBuilder, + required Widget Function(T item, bool isEnabled, bool isSelected, VoidCallback? onTap) itemBuilder, required List<(T item, bool isEnabled)> items, }) => AstromicRadioSelector( @@ -27,7 +26,6 @@ class AstromicSelectors { itemSpacing: itemSpacing ?? 8.0, // itemBuilder: itemBuilder, - disabledItemBuilder: disabledItemBuilder, items: items, ); @@ -41,15 +39,9 @@ class AstromicSelectors { // double? itemSpacing = 4, double? runSpacing = 8, - double? clearSpacing = 4, - // - TextStyle? labelStyle, - TextStyle? selectedLabelStyle, - TextStyle? disabledLabelStyle, // required List<(T item, bool isEnabled)> items, - required Widget Function(T item, {bool isSelected, VoidCallback? onTap, VoidCallback? onClearTapped}) itemBuilder, - required Widget Function(T item) disabledItemBuilder, + required Widget Function(T item, bool isEnabled, bool isSelected, VoidCallback? onTap, VoidCallback? onClearTapped) itemBuilder, Widget Function(List items)? groupBuilder, }) { assert( @@ -65,7 +57,6 @@ class AstromicSelectors { // items: items, itemBuilder: itemBuilder, - disabledItemBuilder: disabledItemBuilder, groupBuilder: groupBuilder!, ) : AstromicChipSelector( @@ -79,7 +70,6 @@ class AstromicSelectors { // items: items, itemBuilder: itemBuilder, - disabledItemBuilder: disabledItemBuilder, ); } } diff --git a/lib/src/Selectors/src/chip.selector.dart b/lib/src/Selectors/src/chip.selector.dart index 9ca01de..f79dbe9 100644 --- a/lib/src/Selectors/src/chip.selector.dart +++ b/lib/src/Selectors/src/chip.selector.dart @@ -34,8 +34,7 @@ class AstromicChipSelector extends StatefulWidget { //s1 -- Content final List<(T item, bool isEnabled)> items; // - final Widget Function(T item, {bool isSelected, VoidCallback? onTap, VoidCallback? onClearTapped}) itemBuilder; - final Widget Function(T item) disabledItemBuilder; + final Widget Function(T item, bool isEnabled, bool isSelected, VoidCallback? onTap, VoidCallback? onClearTapped) itemBuilder; final Widget Function(List items)? groupBuilder; //!SECTION // @@ -53,7 +52,6 @@ class AstromicChipSelector extends StatefulWidget { //s1 -- Content required this.items, required this.itemBuilder, - required this.disabledItemBuilder, this.groupBuilder, }) : assert( (configuration?.isNullable ?? true) || (initialSelectedValues != null && items.map((i) => i.$1).toList().containsAll(initialSelectedValues)), @@ -77,8 +75,7 @@ class AstromicChipSelector extends StatefulWidget { //s1 -- Content required final List<(T item, bool isEnabled)> items, // - required final Widget Function(T item, {bool isSelected, VoidCallback? onTap, VoidCallback? onClearTapped}) itemBuilder, - required final Widget Function(T item) disabledItemBuilder, + required final Widget Function(T item, bool isEnabled, bool isSelected, VoidCallback? onTap, VoidCallback? onClearTapped) itemBuilder, required final Widget Function(List items) groupBuilder, }) { assert((configuration?.isNullable ?? true) || (initialSelectedValues != null && items.map((i) => i.$1).toList().containsAll(initialSelectedValues)), @@ -96,7 +93,6 @@ class AstromicChipSelector extends StatefulWidget { // items: items, itemBuilder: itemBuilder, - disabledItemBuilder: disabledItemBuilder, groupBuilder: groupBuilder, ); } @@ -201,14 +197,13 @@ class _AstromicChipSelectorState extends State> { bool canShowClear = _configuration.withClearButton && canbeUnselected; // --- // - return isEnabled - ? widget.itemBuilder( - currentItem.$1, - isSelected: isSelected, - onTap: tapable ? () => _onTap(currentItem.$1) : null, - onClearTapped: canShowClear ? _onTapClear(currentItem.$1) : null, - ) - : widget.disabledItemBuilder(currentItem.$1); + return widget.itemBuilder( + currentItem.$1, + isEnabled, + isSelected, + tapable ? () => _onTap(currentItem.$1) : null, + canShowClear ? _onTapClear(currentItem.$1) : null, + ); }).toList(); //s1 -Widgets //!SECTION diff --git a/lib/src/Selectors/src/radio.selector.dart b/lib/src/Selectors/src/radio.selector.dart index e956aa7..39bdde1 100644 --- a/lib/src/Selectors/src/radio.selector.dart +++ b/lib/src/Selectors/src/radio.selector.dart @@ -32,8 +32,7 @@ class AstromicRadioSelector extends StatefulWidget { //s1 -- Content final List<(T item, bool isEnabled)> items; // - final Widget Function(T item, {VoidCallback? onTap, bool isSelected}) itemBuilder; - final Widget Function(T item)? disabledItemBuilder; + final Widget Function(T item, bool isEnabled, bool isSelected, VoidCallback? onTap) itemBuilder; //!SECTION // AstromicRadioSelector({ @@ -48,7 +47,6 @@ class AstromicRadioSelector extends StatefulWidget { required this.itemSpacing, //s1 -- Content required this.itemBuilder, - this.disabledItemBuilder, }) : assert(configuration.isNullable || initialSelectedValue != null, 'You need to supply an initial value if not nullable!'), assert( configuration.isNullable || @@ -131,16 +129,13 @@ class _AstromicRadioSelectorState extends State> { // //s1 -Widgets List baseChildren = widget.items.map((currentItem) { + T item = currentItem.$1; bool isEnabled = currentItem.$2; - bool isSelected = currentItem.$1 == selectedItem; + bool isSelected = item == selectedItem; // - return !isEnabled && widget.disabledItemBuilder != null - ? widget.configuration.withExpandedSpace && widget.configuration.axis == Axis.horizontal - ? Expanded(child: widget.disabledItemBuilder!(currentItem.$1)) - : widget.disabledItemBuilder!(currentItem.$1) - : widget.configuration.withExpandedSpace && widget.configuration.axis == Axis.horizontal - ? Expanded(child: widget.itemBuilder(currentItem.$1, onTap: isEnabled ? () => _onTap(currentItem.$1) : null, isSelected: isSelected)) - : widget.itemBuilder(currentItem.$1, onTap: isEnabled ? () => _onTap(currentItem.$1) : null, isSelected: isSelected); + return widget.configuration.withExpandedSpace && widget.configuration.axis == Axis.horizontal + ? Expanded(child: widget.itemBuilder(item, isEnabled, isSelected, isEnabled ? () => _onTap(item) : null)) + : widget.itemBuilder(item, isEnabled, isSelected, isEnabled ? () => _onTap(item) : null); }).toList(); //s1 -Widgets //!SECTION