import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:unicons/unicons.dart'; import 'package:random/ui/screens/about_page.dart'; import 'package:random/ui/screens/api_page.dart'; import 'package:random/ui/screens/camera_page.dart'; import 'package:random/ui/screens/demo_page.dart'; import 'package:random/ui/screens/game_page.dart'; import 'package:random/ui/screens/graph_page.dart'; import 'package:random/ui/screens/settings_page.dart'; class MenuItem { final String code; final Icon icon; final Widget page; const MenuItem({ required this.code, required this.icon, required this.page, }); } class Menu { static List<MenuItem> items = [ const MenuItem( code: 'bottom_nav_sample', icon: Icon(UniconsLine.image), page: DemoPage(), ), const MenuItem( code: 'bottom_nav_api', icon: Icon(UniconsLine.globe), page: ApiPage(), ), const MenuItem( code: 'bottom_nav_camera', icon: Icon(UniconsLine.camera), page: CameraPage(), ), const MenuItem( code: 'bottom_nav_chart', icon: Icon(UniconsLine.pen), page: GraphPage(), ), const MenuItem( code: 'bottom_nav_game', icon: Icon(UniconsLine.star), page: GamePage(), ), const MenuItem( code: 'bottom_nav_settings', icon: Icon(UniconsLine.setting), page: SettingsPage(), ), const MenuItem( code: 'bottom_nav_about', icon: Icon(UniconsLine.info_circle), page: AboutPage(), ), ]; static Widget getPageWidget(int pageIndex) { return Menu.items.elementAt(pageIndex).page; } static List<BottomNavigationBarItem> getMenuItems() { return Menu.items .map((MenuItem item) => BottomNavigationBarItem( icon: item.icon, label: tr(item.code), )) .toList(); } static int itemsCount = Menu.items.length; }