initial onboarding

This commit is contained in:
Fabian Freund
2025-06-14 23:33:24 +02:00
parent 11a1e8e5f5
commit bce9f0b3a5
26 changed files with 918 additions and 12 deletions
+23
View File
@@ -16,6 +16,7 @@ import 'package:weblibre/features/geckoview/features/search/presentation/screens
import 'package:weblibre/features/geckoview/features/tabs/data/models/container_data.dart';
import 'package:weblibre/features/geckoview/features/tabs/presentation/screens/container_edit.dart';
import 'package:weblibre/features/geckoview/features/tabs/presentation/screens/container_list.dart';
import 'package:weblibre/features/onboarding/presentation/onboarding.dart';
import 'package:weblibre/features/settings/presentation/screens/bang_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/general_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/settings.dart';
@@ -43,3 +44,25 @@ class AboutRoute extends GoRouteData with _$AboutRoute {
return DialogPage(builder: (_) => const AboutDialogScreen());
}
}
@TypedGoRoute<OnboardingRoute>(
name: 'OnboardingRoute',
path: '/onboarding/:currentRevision/:targetRevision',
)
class OnboardingRoute extends GoRouteData with _$OnboardingRoute {
final int currentRevision;
final int targetRevision;
const OnboardingRoute({
required this.currentRevision,
required this.targetRevision,
});
@override
Widget build(BuildContext context, GoRouterState state) {
return OnboardingScreen(
currentRevision: currentRevision,
targetRevision: targetRevision,
);
}
}
+35
View File
@@ -8,6 +8,7 @@ part of 'routes.dart';
List<RouteBase> get $appRoutes => [
$aboutRoute,
$onboardingRoute,
$settingsRoute,
$browserRoute,
$bangCategoriesRoute,
@@ -41,6 +42,40 @@ mixin _$AboutRoute on GoRouteData {
void replace(BuildContext context) => context.replace(location);
}
RouteBase get $onboardingRoute => GoRouteData.$route(
path: '/onboarding/:currentRevision/:targetRevision',
name: 'OnboardingRoute',
factory: _$OnboardingRoute._fromState,
);
mixin _$OnboardingRoute on GoRouteData {
static OnboardingRoute _fromState(GoRouterState state) => OnboardingRoute(
currentRevision: int.parse(state.pathParameters['currentRevision']!)!,
targetRevision: int.parse(state.pathParameters['targetRevision']!)!,
);
OnboardingRoute get _self => this as OnboardingRoute;
@override
String get location => GoRouteData.$location(
'/onboarding/${Uri.encodeComponent(_self.currentRevision.toString())}/${Uri.encodeComponent(_self.targetRevision.toString())}',
);
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
RouteBase get $settingsRoute => GoRouteData.$route(
path: '/settings',
name: 'SettingsRoute',