mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-09-28 14:27:50 +00:00
refactor(router): Migrate to AutoRouter v6
This commit is contained in:
parent
3366585d76
commit
af7196d84b
|
@ -12,7 +12,8 @@ class NavigationService {
|
|||
|
||||
if (context == null) {
|
||||
showSnackBar(
|
||||
'Could not show dialog. This should not happen, please report this.');
|
||||
'Could not show dialog. This should not happen, please report this.',
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
|
@ -13,6 +14,7 @@ import 'package:selfprivacy/ui/helpers/modals.dart';
|
|||
|
||||
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
@RoutePage()
|
||||
class BackupDetailsPage extends StatefulWidget {
|
||||
const BackupDetailsPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -10,6 +11,7 @@ import 'package:selfprivacy/ui/components/info_box/info_box.dart';
|
|||
import 'package:selfprivacy/ui/pages/devices/new_device.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
|
||||
@RoutePage()
|
||||
class DevicesScreen extends StatefulWidget {
|
||||
const DevicesScreen({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/config/get_it_config.dart';
|
||||
|
@ -8,6 +9,7 @@ import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
|||
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
|
||||
import 'package:selfprivacy/utils/network_utils.dart';
|
||||
|
||||
@RoutePage()
|
||||
class DnsDetailsPage extends StatefulWidget {
|
||||
const DnsDetailsPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server_api.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
|
@ -8,6 +9,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
@RoutePage()
|
||||
class AboutApplicationPage extends StatelessWidget {
|
||||
const AboutApplicationPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/app_settings/app_settings_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
|
@ -6,6 +7,7 @@ import 'package:selfprivacy/ui/components/brand_alert/brand_alert.dart';
|
|||
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
@RoutePage()
|
||||
class AppSettingsPage extends StatefulWidget {
|
||||
const AppSettingsPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/api_maps/staging_options.dart';
|
||||
import 'package:selfprivacy/logic/cubit/app_settings/app_settings_cubit.dart';
|
||||
|
@ -6,6 +7,7 @@ import 'package:selfprivacy/logic/cubit/recovery_key/recovery_key_cubit.dart';
|
|||
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
@RoutePage()
|
||||
class DeveloperSettingsPage extends StatefulWidget {
|
||||
const DeveloperSettingsPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
@ -7,6 +8,7 @@ import 'package:selfprivacy/config/get_it_config.dart';
|
|||
import 'package:selfprivacy/logic/models/message.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_header/brand_header.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ConsolePage extends StatefulWidget {
|
||||
const ConsolePage({super.key});
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
|
|||
import 'package:selfprivacy/utils/breakpoints.dart';
|
||||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
|
||||
@RoutePage()
|
||||
class MorePage extends StatelessWidget {
|
||||
const MorePage({super.key});
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
|||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
@RoutePage()
|
||||
class OnboardingPage extends StatefulWidget {
|
||||
const OnboardingPage({super.key});
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import 'package:selfprivacy/utils/breakpoints.dart';
|
|||
|
||||
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
@RoutePage()
|
||||
class ProvidersPage extends StatefulWidget {
|
||||
const ProvidersPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
@ -11,6 +12,7 @@ import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
|||
import 'package:selfprivacy/ui/pages/recovery_key/recovery_key_receiving.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
|
||||
@RoutePage()
|
||||
class RecoveryKeyPage extends StatefulWidget {
|
||||
const RecoveryKeyPage({super.key});
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:selfprivacy/ui/router/root_destinations.dart';
|
|||
|
||||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
|
||||
@RoutePage()
|
||||
class RootPage extends StatefulWidget implements AutoRouteWrapper {
|
||||
const RootPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -32,6 +33,7 @@ part 'time_zone/time_zone.dart';
|
|||
|
||||
var navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
@RoutePage()
|
||||
class ServerDetailsScreen extends StatefulWidget {
|
||||
const ServerDetailsScreen({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_jobs/server_jobs_cubit.dart';
|
||||
|
@ -16,6 +17,7 @@ import 'package:selfprivacy/ui/helpers/modals.dart';
|
|||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ServicesMigrationPage extends StatefulWidget {
|
||||
const ServicesMigrationPage({
|
||||
required this.services,
|
||||
|
|
|
@ -10,6 +10,7 @@ import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
|||
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/logic/models/disk_status.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ExtendingVolumePage extends StatefulWidget {
|
||||
const ExtendingVolumePage({
|
||||
required this.diskVolumeToResize,
|
||||
|
|
|
@ -11,6 +11,7 @@ import 'package:selfprivacy/logic/models/disk_status.dart';
|
|||
import 'package:selfprivacy/ui/components/storage_list_items/server_storage_list_item.dart';
|
||||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ServerStoragePage extends StatefulWidget {
|
||||
const ServerStoragePage({
|
||||
required this.diskStatus,
|
||||
|
|
|
@ -12,6 +12,7 @@ import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
|||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
import 'package:selfprivacy/utils/launch_url.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ServicePage extends StatefulWidget {
|
||||
const ServicePage({required this.serviceId, super.key});
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import 'package:selfprivacy/utils/breakpoints.dart';
|
|||
import 'package:selfprivacy/utils/launch_url.dart';
|
||||
import 'package:selfprivacy/utils/ui_helpers.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ServicesPage extends StatefulWidget {
|
||||
const ServicesPage({super.key});
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ import 'package:selfprivacy/ui/pages/setup/recovering/recovery_routing.dart';
|
|||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
import 'package:selfprivacy/utils/breakpoints.dart';
|
||||
|
||||
@RoutePage()
|
||||
class InitializingPage extends StatelessWidget {
|
||||
const InitializingPage({super.key});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -17,6 +18,7 @@ import 'package:selfprivacy/ui/pages/setup/recovering/recovery_server_provider_c
|
|||
import 'package:selfprivacy/ui/pages/setup/recovering/recovery_method_select.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
|
||||
@RoutePage()
|
||||
class RecoveryRouting extends StatelessWidget {
|
||||
const RecoveryRouting({super.key});
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
part of 'users.dart';
|
||||
|
||||
@RoutePage()
|
||||
class NewUserPage extends StatelessWidget {
|
||||
const NewUserPage({super.key});
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
part of 'users.dart';
|
||||
|
||||
@RoutePage()
|
||||
class UserDetailsPage extends StatelessWidget {
|
||||
const UserDetailsPage({
|
||||
required this.login,
|
||||
|
|
|
@ -33,6 +33,7 @@ part 'user.dart';
|
|||
part 'user_details.dart';
|
||||
part 'reset_password.dart';
|
||||
|
||||
@RoutePage()
|
||||
class UsersPage extends StatelessWidget {
|
||||
const UsersPage({super.key});
|
||||
|
||||
|
|
|
@ -41,65 +41,67 @@ Widget fadeThroughTransition(
|
|||
child: child,
|
||||
);
|
||||
|
||||
@MaterialAutoRouter(
|
||||
@AutoRouterConfig(
|
||||
// transitionsBuilder: fadeThroughTransition,
|
||||
replaceInRouteName: 'Page|Screen|Routing,Route',
|
||||
routes: <AutoRoute>[
|
||||
AutoRoute(
|
||||
page: OnboardingPage,
|
||||
),
|
||||
AutoRoute(page: InitializingPage),
|
||||
AutoRoute(page: RecoveryRouting),
|
||||
AutoRoute(
|
||||
page: RootPage,
|
||||
initial: true,
|
||||
children: [
|
||||
CustomRoute(
|
||||
page: ProvidersPage,
|
||||
usesPathAsKey: true,
|
||||
initial: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
CustomRoute(
|
||||
page: ServicesPage,
|
||||
usesPathAsKey: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
CustomRoute(
|
||||
page: UsersPage,
|
||||
usesPathAsKey: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
CustomRoute(
|
||||
page: MorePage,
|
||||
usesPathAsKey: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
AutoRoute(page: AppSettingsPage),
|
||||
AutoRoute(page: UserDetailsPage),
|
||||
AutoRoute(page: NewUserPage),
|
||||
AutoRoute(page: RecoveryKeyPage),
|
||||
AutoRoute(page: DevicesScreen),
|
||||
AutoRoute(page: AboutApplicationPage),
|
||||
AutoRoute(page: DeveloperSettingsPage),
|
||||
AutoRoute(page: ServicePage),
|
||||
AutoRoute(page: ServerDetailsScreen),
|
||||
AutoRoute(page: DnsDetailsPage),
|
||||
AutoRoute(page: BackupDetailsPage),
|
||||
AutoRoute(page: ServerStoragePage),
|
||||
AutoRoute(page: ExtendingVolumePage),
|
||||
],
|
||||
),
|
||||
AutoRoute(page: ServicesMigrationPage),
|
||||
AutoRoute(page: ConsolePage),
|
||||
],
|
||||
)
|
||||
class RootRouter extends _$RootRouter {
|
||||
RootRouter(GlobalKey<NavigatorState> super.navigatorKey);
|
||||
|
||||
@override
|
||||
RouteType get defaultRouteType => const RouteType.material();
|
||||
@override
|
||||
final List<AutoRoute> routes = [
|
||||
AutoRoute(page: OnboardingRoute.page),
|
||||
AutoRoute(page: InitializingRoute.page),
|
||||
AutoRoute(page: RecoveryRoute.page),
|
||||
AutoRoute(
|
||||
page: RootRoute.page,
|
||||
path: '/',
|
||||
children: [
|
||||
CustomRoute(
|
||||
page: ProvidersRoute.page,
|
||||
usesPathAsKey: true,
|
||||
path: '',
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
CustomRoute(
|
||||
page: ServicesRoute.page,
|
||||
usesPathAsKey: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
CustomRoute(
|
||||
page: UsersRoute.page,
|
||||
usesPathAsKey: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
CustomRoute(
|
||||
page: MoreRoute.page,
|
||||
usesPathAsKey: true,
|
||||
transitionsBuilder: fadeThroughTransition,
|
||||
durationInMilliseconds: 400,
|
||||
),
|
||||
AutoRoute(page: AppSettingsRoute.page),
|
||||
AutoRoute(page: UserDetailsRoute.page),
|
||||
AutoRoute(page: NewUserRoute.page),
|
||||
AutoRoute(page: RecoveryKeyRoute.page),
|
||||
AutoRoute(page: DevicesRoute.page),
|
||||
AutoRoute(page: AboutApplicationRoute.page),
|
||||
AutoRoute(page: DeveloperSettingsRoute.page),
|
||||
AutoRoute(page: ServiceRoute.page),
|
||||
AutoRoute(page: ServerDetailsRoute.page),
|
||||
AutoRoute(page: DnsDetailsRoute.page),
|
||||
AutoRoute(page: BackupDetailsRoute.page),
|
||||
AutoRoute(page: ServerStorageRoute.page),
|
||||
AutoRoute(page: ExtendingVolumeRoute.page),
|
||||
],
|
||||
),
|
||||
AutoRoute(page: ServicesMigrationRoute.page),
|
||||
AutoRoute(page: ConsoleRoute.page),
|
||||
];
|
||||
}
|
||||
|
||||
// Function to map route names to route titles
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue