TKeyValue.chips constructor
TKeyValue.chips(
- String key,
- List items, {
- Color? color,
- Color? colorBuilder(
- String chipText
- dynamic chipIcon,
- dynamic iconBuilder(
- String chipText
- TVariant? type,
- TVariant? typeBuilder(
- String chipText
- TSize size = TChipSize.sm,
- double spacing = 4.0,
- double runSpacing = 4.0,
- WrapCrossAlignment crossAxisAlignment = WrapCrossAlignment.center,
- WrapAlignment wrapAlignment = WrapAlignment.start,
- void onTap(
- String chipText
- Widget? icon,
- double? width,
- Alignment? alignment,
- double? minWidth,
- double? maxWidth,
Creates a key-value item for displaying multiple chips in a Wrap.
Implementation
factory TKeyValue.chips(
String key,
List<dynamic> items, {
Color? color,
Color? Function(String chipText)? colorBuilder,
dynamic chipIcon,
dynamic Function(String chipText)? iconBuilder,
TVariant? type,
TVariant? Function(String chipText)? typeBuilder,
TSize size = TChipSize.sm,
double spacing = 4.0,
double runSpacing = 4.0,
WrapCrossAlignment crossAxisAlignment = WrapCrossAlignment.center,
WrapAlignment wrapAlignment = WrapAlignment.start,
void Function(String chipText)? onTap,
Widget? icon,
double? width,
Alignment? alignment,
double? minWidth,
double? maxWidth,
}) {
final chipWidgets = <Widget>[];
final stringValues = <String>[];
for (final item in items) {
if (item is TChip) {
chipWidgets.add(item);
if (item.text != null && item.text!.isNotEmpty) {
stringValues.add(item.text!);
}
} else if (item != null) {
final text = item.toString();
if (text.isNotEmpty) {
stringValues.add(text);
chipWidgets.add(
TChip(
text: text,
icon: iconBuilder?.call(text) ?? chipIcon,
color: colorBuilder?.call(text) ?? color,
type: typeBuilder?.call(text) ?? type,
size: size,
onTap: onTap != null ? () => onTap(text) : null,
),
);
}
}
}
Widget? widget = chipWidgets.isNotEmpty
? Wrap(
spacing: spacing,
runSpacing: runSpacing,
crossAxisAlignment: crossAxisAlignment,
alignment: wrapAlignment,
children: chipWidgets,
)
: null;
return TKeyValue(
key,
value: stringValues.isNotEmpty ? stringValues.join(', ') : null,
widget: widget,
icon: icon,
width: width,
alignment: alignment,
minWidth: minWidth,
maxWidth: maxWidth,
);
}