import 'package:flutter/material.dart'; import 'package:unicons/unicons.dart'; import 'package:solitaire/ui/screens/page_about.dart'; import 'package:solitaire/ui/screens/page_game.dart'; import 'package:solitaire/ui/screens/page_settings.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 const indexGame = 0; static const menuItemGame = MenuItem( code: 'bottom_nav_game', icon: Icon(UniconsLine.home), page: PageGame(), ); static const indexSettings = 1; static const menuItemSettings = MenuItem( code: 'bottom_nav_settings', icon: Icon(UniconsLine.setting), page: PageSettings(), ); static const indexAbout = 2; static const menuItemAbout = MenuItem( code: 'bottom_nav_about', icon: Icon(UniconsLine.info_circle), page: PageAbout(), ); static Map<int, MenuItem> items = { indexGame: menuItemGame, indexSettings: menuItemSettings, indexAbout: menuItemAbout, }; static bool isIndexAllowed(int pageIndex) { return items.keys.contains(pageIndex); } static Widget getPageWidget(int pageIndex) { return items[pageIndex]?.page ?? menuItemGame.page; } static int itemsCount = Menu.items.length; }