This commit is contained in:
Fabian Freund
2025-02-03 15:09:04 +01:00
parent 36acd46318
commit 025ecaf2e3
132 changed files with 4431 additions and 1644 deletions
+81 -13
View File
@@ -11,11 +11,16 @@ import 'package:lensai/features/chat_archive/presentation/screens/list.dart';
import 'package:lensai/features/chat_archive/presentation/screens/search.dart';
import 'package:lensai/features/geckoview/features/browser/presentation/dialogs/web_page_dialog.dart';
import 'package:lensai/features/geckoview/features/browser/presentation/screens/browser.dart';
import 'package:lensai/features/geckoview/features/tabs/data/models/container_data.dart';
import 'package:lensai/features/geckoview/features/tabs/presentation/screens/container_edit.dart';
import 'package:lensai/features/geckoview/features/tabs/presentation/screens/container_list.dart';
import 'package:lensai/features/search/presentation/screens/search.dart';
import 'package:lensai/features/settings/presentation/screens/browser_hardening.dart';
import 'package:lensai/features/settings/presentation/screens/browser_hardening_group.dart';
import 'package:lensai/features/settings/presentation/screens/bang_settings.dart';
import 'package:lensai/features/settings/presentation/screens/general_settings.dart';
import 'package:lensai/features/settings/presentation/screens/settings.dart';
import 'package:lensai/features/settings/presentation/screens/web_engine_hardening.dart';
import 'package:lensai/features/settings/presentation/screens/web_engine_hardening_group.dart';
import 'package:lensai/features/settings/presentation/screens/web_engine_settings.dart';
import 'package:lensai/features/user/presentation/screens/auth.dart';
part 'routes.g.dart';
@@ -63,6 +68,16 @@ part 'routes.g.dart';
TypedGoRoute<ContainerListRoute>(
name: 'ContainerListRoute',
path: 'containers',
routes: [
TypedGoRoute<ContainerCreateRoute>(
name: 'ContainerCreateRoute',
path: 'create',
),
TypedGoRoute<ContainerEditRoute>(
name: 'ContainerEditRoute',
path: 'edit',
),
],
),
],
)
@@ -179,17 +194,49 @@ class ContainerListRoute extends GoRouteData {
}
}
class ContainerEditRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return ContainerEditScreen.edit(
initialContainer: state.extra! as ContainerData,
);
}
}
class ContainerCreateRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return ContainerEditScreen.create(
initialContainer: state.extra! as ContainerData,
);
}
}
@TypedGoRoute<SettingsRoute>(
name: 'SettingsRoute',
path: '/settings',
routes: [
TypedGoRoute<BrowserHardeningRoute>(
name: 'BrowserHardeningRoute',
path: 'hardening',
TypedGoRoute<GeneralSettingsRoute>(
name: 'GeneralSettingsRoute',
path: 'general',
),
TypedGoRoute<BangSettingsRoute>(
name: 'BangSettingsRoute',
path: 'bang',
),
TypedGoRoute<WebEngineSettingsRoute>(
name: 'WebEngineSettingsRoute',
path: 'web_engine',
routes: [
TypedGoRoute<BrowserHardeningGroupRoute>(
name: 'BrowserHardeningGroupRoute',
path: 'group/:group',
TypedGoRoute<WebEngineHardeningRoute>(
name: 'WebEngineHardeningRoute',
path: 'hardening',
routes: [
TypedGoRoute<WebEngineHardeningGroupRoute>(
name: 'WebEngineHardeningGroupRoute',
path: 'group/:group',
),
],
),
],
),
@@ -202,21 +249,42 @@ class SettingsRoute extends GoRouteData {
}
}
class BrowserHardeningRoute extends GoRouteData {
class GeneralSettingsRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return const BrowserHardeningScreen();
return const GeneralSettingsScreen();
}
}
class BrowserHardeningGroupRoute extends GoRouteData {
class BangSettingsRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return const BangSettingsScreen();
}
}
class WebEngineSettingsRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return const WebEngineSettingsScreen();
}
}
class WebEngineHardeningRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return const WebEngineHardeningScreen();
}
}
class WebEngineHardeningGroupRoute extends GoRouteData {
final String group;
const BrowserHardeningGroupRoute({required this.group});
const WebEngineHardeningGroupRoute({required this.group});
@override
Widget build(BuildContext context, GoRouterState state) {
return BrowserHardeningGroupScreen(groupName: group);
return WebEngineHardeningGroupScreen(groupName: group);
}
}
+134 -14
View File
@@ -65,6 +65,18 @@ RouteBase get $browserRoute => GoRouteData.$route(
path: 'containers',
name: 'ContainerListRoute',
factory: $ContainerListRouteExtension._fromState,
routes: [
GoRouteData.$route(
path: 'create',
name: 'ContainerCreateRoute',
factory: $ContainerCreateRouteExtension._fromState,
),
GoRouteData.$route(
path: 'edit',
name: 'ContainerEditRoute',
factory: $ContainerEditRouteExtension._fromState,
),
],
),
],
);
@@ -255,20 +267,73 @@ extension $ContainerListRouteExtension on ContainerListRoute {
void replace(BuildContext context) => context.replace(location);
}
extension $ContainerCreateRouteExtension on ContainerCreateRoute {
static ContainerCreateRoute _fromState(GoRouterState state) =>
ContainerCreateRoute();
String get location => GoRouteData.$location(
'/containers/create',
);
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);
}
extension $ContainerEditRouteExtension on ContainerEditRoute {
static ContainerEditRoute _fromState(GoRouterState state) =>
ContainerEditRoute();
String get location => GoRouteData.$location(
'/containers/edit',
);
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',
name: 'SettingsRoute',
factory: $SettingsRouteExtension._fromState,
routes: [
GoRouteData.$route(
path: 'hardening',
name: 'BrowserHardeningRoute',
factory: $BrowserHardeningRouteExtension._fromState,
path: 'general',
name: 'GeneralSettingsRoute',
factory: $GeneralSettingsRouteExtension._fromState,
),
GoRouteData.$route(
path: 'bang',
name: 'BangSettingsRoute',
factory: $BangSettingsRouteExtension._fromState,
),
GoRouteData.$route(
path: 'web_engine',
name: 'WebEngineSettingsRoute',
factory: $WebEngineSettingsRouteExtension._fromState,
routes: [
GoRouteData.$route(
path: 'group/:group',
name: 'BrowserHardeningGroupRoute',
factory: $BrowserHardeningGroupRouteExtension._fromState,
path: 'hardening',
name: 'WebEngineHardeningRoute',
factory: $WebEngineHardeningRouteExtension._fromState,
routes: [
GoRouteData.$route(
path: 'group/:group',
name: 'WebEngineHardeningGroupRoute',
factory: $WebEngineHardeningGroupRouteExtension._fromState,
),
],
),
],
),
@@ -292,12 +357,12 @@ extension $SettingsRouteExtension on SettingsRoute {
void replace(BuildContext context) => context.replace(location);
}
extension $BrowserHardeningRouteExtension on BrowserHardeningRoute {
static BrowserHardeningRoute _fromState(GoRouterState state) =>
BrowserHardeningRoute();
extension $GeneralSettingsRouteExtension on GeneralSettingsRoute {
static GeneralSettingsRoute _fromState(GoRouterState state) =>
GeneralSettingsRoute();
String get location => GoRouteData.$location(
'/settings/hardening',
'/settings/general',
);
void go(BuildContext context) => context.go(location);
@@ -310,14 +375,69 @@ extension $BrowserHardeningRouteExtension on BrowserHardeningRoute {
void replace(BuildContext context) => context.replace(location);
}
extension $BrowserHardeningGroupRouteExtension on BrowserHardeningGroupRoute {
static BrowserHardeningGroupRoute _fromState(GoRouterState state) =>
BrowserHardeningGroupRoute(
extension $BangSettingsRouteExtension on BangSettingsRoute {
static BangSettingsRoute _fromState(GoRouterState state) =>
BangSettingsRoute();
String get location => GoRouteData.$location(
'/settings/bang',
);
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);
}
extension $WebEngineSettingsRouteExtension on WebEngineSettingsRoute {
static WebEngineSettingsRoute _fromState(GoRouterState state) =>
WebEngineSettingsRoute();
String get location => GoRouteData.$location(
'/settings/web_engine',
);
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);
}
extension $WebEngineHardeningRouteExtension on WebEngineHardeningRoute {
static WebEngineHardeningRoute _fromState(GoRouterState state) =>
WebEngineHardeningRoute();
String get location => GoRouteData.$location(
'/settings/web_engine/hardening',
);
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);
}
extension $WebEngineHardeningGroupRouteExtension
on WebEngineHardeningGroupRoute {
static WebEngineHardeningGroupRoute _fromState(GoRouterState state) =>
WebEngineHardeningGroupRoute(
group: state.pathParameters['group']!,
);
String get location => GoRouteData.$location(
'/settings/hardening/group/${Uri.encodeComponent(group)}',
'/settings/web_engine/hardening/group/${Uri.encodeComponent(group)}',
);
void go(BuildContext context) => context.go(location);