import 'package:chicken_farm/stores/auth_store.dart'; import 'package:chicken_farm/stores/menu_store.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; class MenuButtons extends ConsumerWidget { const MenuButtons({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final authState = ref.watch(authStoreProvider); final authStore = ref.watch(authStoreProvider.notifier); final isSuperAdmin = authStore.isSuperAdmin(); // 根据权限过滤菜单项 final visibleMenuItems = MenuStore.menuItems.where((item) { if (isSuperAdmin) return true; if (item.permission == null) return true; return authState.permissions?.contains(item.permission) ?? false; }).toList(); final screenWidth = MediaQuery.of(context).size.width; final buttonWidth = screenWidth * 0.8; return SingleChildScrollView( child: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ for (var i = 0; i < visibleMenuItems.length; i++) ...[ SizedBox( width: buttonWidth, height: 50, child: ElevatedButton.icon( onPressed: () { Future.delayed(const Duration(milliseconds: 100), () { if (context.mounted) { context.pushNamed(visibleMenuItems[i].routeName); } }); }, icon: visibleMenuItems[i].icon != null ? Icon(visibleMenuItems[i].icon) : const SizedBox.shrink(), label: Text(visibleMenuItems[i].name), ), ), if (i < visibleMenuItems.length - 1) const SizedBox(height: 20), ], ], ), ), ); } }