renderChip method

String renderChip(
  1. T item,
  2. bool isFocused,
  3. bool isSelected, {
  4. String labelBuilder(
    1. T
    )?,
})

Renders items as tag chips: tag

Implementation

String renderChip(
  T item,
  bool isFocused,
  bool isSelected, {
  String Function(T)? labelBuilder,
}) {
  final label = labelBuilder?.call(item) ?? item.toString();
  final raw = '[ $label ]';
  final padding = (computedCellWidth - raw.length).clamp(0, 1000);
  final padded = raw + ' ' * padding;

  if (isFocused) {
    return '${theme.inverse}${theme.selection}$padded${theme.reset}';
  }
  if (isSelected) {
    return padded.replaceFirst(label, '${theme.accent}$label${theme.reset}');
  }
  return '${theme.dim}$padded${theme.reset}';
}