9
This commit is contained in:
81
lib/13/go/raw_book/src/app.dart
Normal file
81
lib/13/go/raw_book/src/app.dart
Normal file
@@ -0,0 +1,81 @@
|
||||
// Copyright 2021, the Flutter project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'auth.dart';
|
||||
import 'routing.dart';
|
||||
import 'screens/navigator.dart';
|
||||
|
||||
class Bookstore extends StatefulWidget {
|
||||
const Bookstore({super.key});
|
||||
|
||||
@override
|
||||
State<Bookstore> createState() => _BookstoreState();
|
||||
}
|
||||
|
||||
class _BookstoreState extends State<Bookstore> {
|
||||
late final RouteState _routeState;
|
||||
late final SimpleRouterDelegate _routerDelegate;
|
||||
late final TemplateRouteParser _routeParser;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
/// Configure the parser with all of the app's allowed path templates.
|
||||
_routeParser = TemplateRouteParser(
|
||||
allowedPaths: [
|
||||
'/signin',
|
||||
'/authors',
|
||||
'/settings',
|
||||
'/books/new',
|
||||
'/books/all',
|
||||
'/books/popular',
|
||||
'/book/:bookId',
|
||||
'/author/:authorId',
|
||||
],
|
||||
initialRoute: '/signin',
|
||||
);
|
||||
|
||||
_routeState = RouteState(_routeParser);
|
||||
|
||||
_routerDelegate = SimpleRouterDelegate(
|
||||
routeState: _routeState,
|
||||
);
|
||||
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => RouteStateScope(
|
||||
notifier: _routeState,
|
||||
child: MaterialApp.router(
|
||||
routerDelegate: _routerDelegate,
|
||||
routeInformationParser: _routeParser,
|
||||
// Revert back to pre-Flutter-2.5 transition behavior:
|
||||
// https://github.com/flutter/flutter/issues/82053
|
||||
theme: ThemeData(
|
||||
useMaterial3: true,
|
||||
pageTransitionsTheme: const PageTransitionsTheme(
|
||||
builders: {
|
||||
TargetPlatform.android: FadeUpwardsPageTransitionsBuilder(),
|
||||
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
|
||||
TargetPlatform.linux: FadeUpwardsPageTransitionsBuilder(),
|
||||
TargetPlatform.macOS: CupertinoPageTransitionsBuilder(),
|
||||
TargetPlatform.windows: FadeUpwardsPageTransitionsBuilder(),
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_routeState.dispose();
|
||||
_routerDelegate.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user