submenu static method

Widget submenu(
  1. M3EMenuSubmenu item, {
  2. required bool autofocus,
  3. required M3EMenuTheme menuTheme,
  4. required M3EMenuOpenSubmenuCallback? onOpenSubmenu,
})

submenu.

Implementation

static Widget submenu(
  M3EMenuSubmenu item, {
  required bool autofocus,
  required M3EMenuTheme menuTheme,
  required M3EMenuOpenSubmenuCallback? onOpenSubmenu,
}) {
  return Builder(
    builder: (BuildContext itemContext) {
      void open() {
        final Rect? rect = m3eOverlayRectFor(itemContext);
        if (rect == null || onOpenSubmenu == null) {
          return;
        }
        onOpenSubmenu(rect, item.children);
      }

      return M3EMenuKeyRegistration(
        label: item.label,
        enabled: item.enabled,
        onOpenSubmenu: item.enabled ? open : null,
        builder: (FocusNode node) {
          return M3EMenuItem(
            label: item.label,
            leading: item.leading,
            badge: item.badge,
            trailing: Icon(
              M3EIcons.arrow_right_rounded,
              size: menuTheme.iconSize,
            ),
            enabled: item.enabled,
            shape: item.shape,
            autofocus: autofocus,
            focusNode: node,
            onTap: item.enabled && onOpenSubmenu != null ? open : null,
          );
        },
      );
    },
  );
}