toggleable static method

Widget toggleable(
  1. M3EMenuToggleable item, {
  2. required bool autofocus,
  3. required M3EMenuTheme menuTheme,
  4. required M3EMenuSelectCallback onSelect,
})

toggleable.

Implementation

static Widget toggleable(
  M3EMenuToggleable item, {
  required bool autofocus,
  required M3EMenuTheme menuTheme,
  required M3EMenuSelectCallback onSelect,
}) {
  return M3EMenuKeyRegistration(
    label: item.label,
    enabled: item.enabled,
    builder: (FocusNode node) {
      return M3EMenuItem(
        label: item.label,
        leading:
            item.leading ??
            Icon(
              item.checked
                  ? M3EIcons.check_box_rounded
                  : M3EIcons.check_box_outline_blank_rounded,
              size: menuTheme.iconSize,
            ),
        trailing: item.trailing,
        trailingText: item.trailingText,
        badge: item.badge,
        supportingText: item.supportingText,
        enabled: item.enabled,
        selected: item.checked,
        shape: item.shape,
        autofocus: autofocus,
        focusNode: node,
        onTap: item.enabled
            ? () {
                final next = !item.checked;
                item.onChanged?.call(next);
                onSelect(next);
              }
            : null,
      );
    },
  );
}