Files
iroute/lib/navigation/router/routers/app.dart
2023-12-21 22:06:28 +08:00

65 lines
2.0 KiB
Dart

import 'package:components/components.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:iroute/navigation/router/routers/anima.dart';
import 'package:iroute/navigation/router/routers/dream.dart';
import 'package:iroute/navigation/router/routers/render.dart';
import 'package:iroute/navigation/router/routers/scroll.dart';
import 'package:iroute/navigation/router/routers/touch.dart';
import '../../transition/size_clip_transition.dart';
import '../../views/app_navigation.dart';
import '../../../pages/empty/empty_panel.dart';
import 'dashboard.dart';
import 'draw.dart';
import 'layout.dart';
final RouteBase appRoute = ShellRoute(
builder: (BuildContext context, GoRouterState state, Widget child) {
return TolyBookNavigation(content: child);
},
routes: <RouteBase>[
dashboardRouters,
drawRouters,
touchRouters,
dreamRouters,
scrollRouters,
renderRouters,
layoutRouters,
animaRouters,
GoRoute(
path: '/code',
pageBuilder: (BuildContext context, GoRouterState state) {
String? path = state.uri.queryParameters['path'];
return CustomTransitionPage(
transitionDuration: const Duration(milliseconds: 500),
reverseTransitionDuration: const Duration(milliseconds: 500),
child: CodeView(
path: path ?? '',
),
transitionsBuilder: (_, a1, a2, child) =>
SizeClipTransition(
animation: a1,
secondaryAnimation: a2,
child: child,
)
// CupertinoPageTransition(
// primaryRouteAnimation: a1,
// secondaryRouteAnimation: a2,
// linearTransition: true,
// child: child,
// ),
);
},
),
GoRoute(
path: '/404',
builder: (BuildContext context, GoRouterState state) {
String msg = '无法访问: ${state.extra}';
return EmptyPanel(msg: msg);
},
)
],
);