choiceChip method
Widget generator for choice items
Implementation
Widget? choiceChip(int i) {
final data = choiceItems[i];
final selected = isMultiChoice
? widget.multiValue.contains(data.value)
: widget.singleValue == data.value;
final item = data.copyWith(
style: defaultChoiceStyle.merge(widget.choiceStyle).merge(data.style),
selected: selected,
select: (selected) => select(data.value, selected: selected),
);
final isSelectedTarget = isScrollable
? isMultiChoice
? selected && (widget.multiValue[0] == item.value)
: selected
: false;
return item.hidden == true
? null
: Builder(
key: ValueKey('${item.value}'),
builder: (context) {
if (isSelectedTarget) {
selectedContext = context;
}
return widget.choiceBuilder?.call(item, i) ??
C2Chip(
label: choiceLabelBuilder.call(item, i),
avatarImage: item.avatarImage,
avatarText: item.avatarText,
leading: widget.choiceLeadingBuilder?.call(item, i),
trailing: widget.choiceTrailingBuilder?.call(item, i),
checkmark: widget.choiceCheckmark,
style: item.style,
disabled: item.disabled,
selected: item.selected,
onSelected: item.select,
onDeleted: item.delete,
tooltip: item.tooltip,
);
},
);
}