choiceChip method

Widget? choiceChip(
  1. int i
)

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,
                );
          },
        );
}