FlexiChipStyle.when constructor

FlexiChipStyle.when({
  1. FlexiChipStyle? enabled,
  2. FlexiChipStyle? selected,
  3. FlexiChipStyle? disabled,
  4. FlexiChipStyle? hovered,
  5. FlexiChipStyle? focused,
  6. FlexiChipStyle? pressed,
})

Create a chip's style when some events occurs.

The enabled is base style to be applied to the chip. if null will fallback with empty FlexiChipStyle

The selected is style to be merged with enabled, when events includes FlexiChipEvent.selected.

The disabled style to be merged with enabled, when events includes FlexiChipEvent.disabled.

The hovered style to be merged with enabled, when events includes FlexiChipEvent.hovered.

The focused style to be merged with enabled, when events includes FlexiChipEvent.focused.

The pressed style to be merged with enabled, when events includes FlexiChipEvent.pressed.

Implementation

factory FlexiChipStyle.when({
  FlexiChipStyle? enabled,
  FlexiChipStyle? selected,
  FlexiChipStyle? disabled,
  FlexiChipStyle? hovered,
  FlexiChipStyle? focused,
  FlexiChipStyle? pressed,
}) {
  return FlexiChipStyle.driven((events) {
    return (enabled ?? const FlexiChipStyle())
        .merge(FlexiChipEvent.isSelected(events)
            ? evaluate(selected, events)
            : null)
        .merge(FlexiChipEvent.isDisabled(events)
            ? evaluate(disabled, events)
            : null)
        .merge(FlexiChipEvent.isHovered(events)
            ? evaluate(hovered, events)
            : null)
        .merge(FlexiChipEvent.isFocused(events)
            ? evaluate(focused, events)
            : null)
        .merge(FlexiChipEvent.isPressed(events)
            ? evaluate(pressed, events)
            : null);
  });
}