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