[DEV] Added Custom Chip Selector

This commit is contained in:
2024-05-16 18:22:23 +03:00
parent b8b16af1ad
commit 6e7923eede
2 changed files with 105 additions and 42 deletions

View File

@@ -37,6 +37,7 @@ class AstromicSelectors {
void Function(List<T> selectedItems)? onChanged,
//
AstromicSelectorConfiguration? configuration,
bool isCustom = false,
//
double? itemSpacing = 4,
double? runSpacing = 8,
@@ -49,18 +50,36 @@ class AstromicSelectors {
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,
}) =>
AstromicChipSelector(
initialSelectedValues: initialSelectedValues,
onChanged: onChanged,
//
configuration: configuration,
//
itemSpacing: itemSpacing,
runSpacing: runSpacing,
//
items: items,
itemBuilder: itemBuilder,
disabledItemBuilder: disabledItemBuilder,
);
Widget Function(List<Widget> items)? groupBuilder,
}) {
assert(
(!isCustom || groupBuilder != null),
"You have to provide the group builder in a custom constructor.",
);
return isCustom
? AstromicChipSelector.custom(
initialSelectedValues: initialSelectedValues,
onChanged: onChanged,
//
configuration: configuration,
//
items: items,
itemBuilder: itemBuilder,
disabledItemBuilder: disabledItemBuilder,
groupBuilder: groupBuilder!,
)
: AstromicChipSelector(
initialSelectedValues: initialSelectedValues,
onChanged: onChanged,
//
configuration: configuration,
//
itemSpacing: itemSpacing,
runSpacing: runSpacing,
//
items: items,
itemBuilder: itemBuilder,
disabledItemBuilder: disabledItemBuilder,
);
}
}