support private tabs

This commit is contained in:
Fabian Freund
2025-04-25 20:41:08 +02:00
parent 9064a961ac
commit f95331c654
15 changed files with 212 additions and 74 deletions
+15 -3
View File
@@ -214,7 +214,7 @@ RouteBase get $browserRoute => GoRouteData.$route(
factory: $WebPageRouteExtension._fromState,
),
GoRouteData.$route(
path: 'search/:searchText',
path: 'search/:tabType/:searchText',
name: 'SearchRoute',
factory: $SearchRouteExtension._fromState,
@@ -292,12 +292,14 @@ extension $WebPageRouteExtension on WebPageRoute {
extension $SearchRouteExtension on SearchRoute {
static SearchRoute _fromState(GoRouterState state) => SearchRoute(
tabType: _$TabTypeEnumMap._$fromName(state.pathParameters['tabType']!)!,
searchText:
state.pathParameters['searchText'] ?? SearchRoute.emptySearchText,
);
String get location =>
GoRouteData.$location('/search/${Uri.encodeComponent(searchText)}');
String get location => GoRouteData.$location(
'/search/${Uri.encodeComponent(_$TabTypeEnumMap[tabType]!)}/${Uri.encodeComponent(searchText)}',
);
void go(BuildContext context) => context.go(location);
@@ -309,6 +311,11 @@ extension $SearchRouteExtension on SearchRoute {
void replace(BuildContext context) => context.replace(location);
}
const _$TabTypeEnumMap = {
TabType.regular: 'regular',
TabType.private: 'private',
};
extension $TorProxyRouteExtension on TorProxyRoute {
static TorProxyRoute _fromState(GoRouterState state) => TorProxyRoute();
@@ -394,6 +401,11 @@ extension $ContainerEditRouteExtension on ContainerEditRoute {
context.replace(location, extra: $extra);
}
extension<T extends Enum> on Map<T, String> {
T? _$fromName(String? value) =>
entries.where((element) => element.value == value).firstOrNull?.key;
}
RouteBase get $bangCategoriesRoute => GoRouteData.$route(
path: '/bangs',
name: 'BangRoute',