This commit is contained in:
toly
2023-11-11 11:37:41 +08:00
parent 8fb4bf57d6
commit 5396712cf9
17 changed files with 368 additions and 101 deletions

View File

@@ -1,6 +1,10 @@
import 'package:flutter/material.dart';
import 'package:iroute/components/components.dart';
import '../../../pages/login/login.dart';
import '../transition/no_transition_page.dart';
import '../../../pages/sort/views/player/sort_player.dart';
import 'iroute_config.dart';
import '../views/app_navigation.dart';
import 'iroute.dart';
import '../../../pages/color/color_add_page.dart';
import '../../../pages/color/color_detail_page.dart';
@@ -11,37 +15,52 @@ import '../../../pages/settings/settings_page.dart';
import '../../../pages/sort/views/sort_page/sort_page.dart';
import '../../../pages/sort/views/settings/sort_setting.dart';
IRoute rootRoute = const IRoute(
path: 'root',
CellIRoute appRoute = CellIRoute(
cellBuilder: (_, __, navigator) => AppNavigation(
navigator: navigator,
),
path: '/app',
children: [
IRoute(
path: '/color',
IRoute(
path: '/app/color',
widget: ColorPage(),
children: [
IRoute(path: '/color/detail', widgetBuilder: _buildColorDetail),
IRoute(path: '/color/add', widget: ColorAddPage()),
IRoute(path: '/app/color/detail', widgetBuilder: _buildColorDetail),
IRoute(path: '/app/color/add', widget: ColorAddPage()),
],
),
IRoute(path: '/counter', widget: CounterPage()),
const IRoute(path: '/app/counter', widget: CounterPage()),
CellIRoute(
path: '/sort',
widget: SortPage(),
cellBuilder: (_, __, navigator) => SortNavigation(navigator: navigator),
// pageBuilder: (_,config,child)=> NoTransitionPage(
// child: child,
// key: config.pageKey
// ),
path: '/app/sort',
children: [
IRoute(
path: '/sort/settings',
const IRoute(
path: '/app/sort/settings',
widget: SortSettings(),
),
IRoute(
path: '/sort/player',
const IRoute(
path: '/app/sort/player',
widget: SortPlayer(),
),
],
),
IRoute(path: '/user', widget: UserPage()),
IRoute(path: '/settings', widget: SettingPage()),
const IRoute(path: '/app/user', widget: UserPage()),
const IRoute(path: '/app/settings', widget: SettingPage()),
],
);
IRoute rootRoute = IRoute(path: '/', children: [
appRoute,
const IRoute(
path: '/login',
widget: LoginPage()
)
]);
Widget? _buildColorDetail(BuildContext context, IRouteConfig data) {
final Map<String, String> queryParams = data.uri.queryParameters;
String? selectedColor = queryParams['color'];
@@ -53,3 +72,24 @@ Widget? _buildColorDetail(BuildContext context, IRouteConfig data) {
}
return ColorDetailPage(color: color);
}
Map<String, String> kRouteLabelMap = {
'/app': '',
'/app/color': '颜色板',
'/app/color/add': '添加颜色',
'/app/color/detail': '颜色详情',
'/app/counter': '计数器',
'/app/sort': '可视化排序算法',
'/app/sort/player': '演示',
'/app/sort/settings': '排序配置',
'/app/user': '我的',
'/app/settings': '系统设置',
};
const List<MenuMeta> deskNavBarMenus = [
MenuMeta(label: '颜色板', icon: Icons.color_lens_outlined, path: '/app/color'),
MenuMeta(label: '计数器', icon: Icons.add_chart, path: '/app/counter'),
MenuMeta(label: '排序', icon: Icons.sort, path: '/app/sort/player'),
MenuMeta(label: '我的', icon: Icons.person, path: '/app/user'),
MenuMeta(label: '设置', icon: Icons.settings, path: '/app/settings'),
];