buildNavigationWidget method

  1. @override
Widget buildNavigationWidget({
  1. required BuildContext context,
  2. required List<SidebarXItem> items,
  3. required SidebarXController controller,
  4. VoidCallback? onToggle,
})
override

Implementation

@override
Widget buildNavigationWidget({
  required BuildContext context,
  required List<SidebarXItem> items,
  required SidebarXController controller,
  VoidCallback? onToggle,
}) {
  final fontSizeController = GetIt.I<FontSizeController>();
  final baseColor = fontSizeController.getEffectiveSidebarColor();
  final textColor = fontSizeController.getEffectiveSidebarTextColor();

  // Map SidebarXItem to PlutoMenuItem
  final menus = List.generate(items.length, (index) {
    final item = items[index];
    return PlutoMenuItem(
      title: item.label ?? '',
      icon: item.icon,
      onTap: () {
        if (item.onTap != null) {
          item.onTap!();
        } else {
          controller.selectIndex(index);
        }
      },
    );
  });

  return Obx(() {
    final activeColor = fontSizeController.getEffectiveAccentColor();
    return PlutoMenuBar(
      backgroundColor: baseColor,
      itemStyle: PlutoMenuItemStyle(
        activatedColor: activeColor.withOpacity(0.12),
        textStyle: TextStyle(color: textColor, fontSize: 14),
        iconColor: textColor.withOpacity(0.85),
        iconSize: fontSizeController.sidebarIconSize.value.size,
      ),
      menus: menus,
    );
  });
}