first implementation finished

This commit is contained in:
Fabian Freund
2024-04-22 11:21:01 +02:00
parent 1a13ca0795
commit 0e1972242a
102 changed files with 7192 additions and 55 deletions
+43
View File
@@ -0,0 +1,43 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:kagi_bang_bang/features/search_browser/presentation/screens/browser.dart';
import 'package:kagi_bang_bang/features/settings/data/repositories/settings_repository.dart';
import 'package:kagi_bang_bang/features/settings/presentation/screens/settings.dart';
part 'routes.g.dart';
@TypedGoRoute<KagiRoute>(
path: '/',
)
class KagiRoute extends GoRouteData {
KagiRoute();
@override
Future<String?> redirect(BuildContext context, GoRouterState state) async {
final hasKagiSession = await ProviderScope.containerOf(context)
.read(settingsRepositoryProvider.future)
.then((value) => value.kagiSession?.isNotEmpty ?? false);
if (!hasKagiSession) {
return SettingsRoute().location;
}
return null;
}
@override
Widget build(BuildContext context, GoRouterState state) {
return const KagiScreen();
}
}
@TypedGoRoute<SettingsRoute>(
path: '/settings',
)
class SettingsRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return const SettingsScreen();
}
}
+56
View File
@@ -0,0 +1,56 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'routes.dart';
// **************************************************************************
// GoRouterGenerator
// **************************************************************************
List<RouteBase> get $appRoutes => [
$kagiRoute,
$settingsRoute,
];
RouteBase get $kagiRoute => GoRouteData.$route(
path: '/',
factory: $KagiRouteExtension._fromState,
);
extension $KagiRouteExtension on KagiRoute {
static KagiRoute _fromState(GoRouterState state) => KagiRoute();
String get location => GoRouteData.$location(
'/',
);
void go(BuildContext context) => context.go(location);
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
void replace(BuildContext context) => context.replace(location);
}
RouteBase get $settingsRoute => GoRouteData.$route(
path: '/settings',
factory: $SettingsRouteExtension._fromState,
);
extension $SettingsRouteExtension on SettingsRoute {
static SettingsRoute _fromState(GoRouterState state) => SettingsRoute();
String get location => GoRouteData.$location(
'/settings',
);
void go(BuildContext context) => context.go(location);
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
void replace(BuildContext context) => context.replace(location);
}