setting to hide container and isolated tab ui
This commit is contained in:
@@ -116,9 +116,25 @@ class SearchRoute extends GoRouteData with $SearchRoute {
|
||||
}
|
||||
}
|
||||
|
||||
bool _isContainerUiEnabled(BuildContext context) {
|
||||
final settings = ProviderScope.containerOf(
|
||||
context,
|
||||
listen: false,
|
||||
).read(generalSettingsWithDefaultsProvider);
|
||||
|
||||
return settings.showContainerUi;
|
||||
}
|
||||
|
||||
class ContainerDraftRoute extends GoRouteData with $ContainerDraftRoute {
|
||||
const ContainerDraftRoute();
|
||||
|
||||
@override
|
||||
String? redirect(BuildContext context, GoRouterState state) {
|
||||
return _isContainerUiEnabled(context)
|
||||
? null
|
||||
: const BrowserRoute().location;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, GoRouterState state) {
|
||||
return const ContainerDraftSuggestionsScreen();
|
||||
@@ -128,6 +144,13 @@ class ContainerDraftRoute extends GoRouteData with $ContainerDraftRoute {
|
||||
class ContainerListRoute extends GoRouteData with $ContainerListRoute {
|
||||
const ContainerListRoute();
|
||||
|
||||
@override
|
||||
String? redirect(BuildContext context, GoRouterState state) {
|
||||
return _isContainerUiEnabled(context)
|
||||
? null
|
||||
: const BrowserRoute().location;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, GoRouterState state) {
|
||||
return const ContainerListScreen();
|
||||
@@ -138,6 +161,13 @@ class ContainerSelectionRoute extends GoRouteData
|
||||
with $ContainerSelectionRoute {
|
||||
const ContainerSelectionRoute();
|
||||
|
||||
@override
|
||||
String? redirect(BuildContext context, GoRouterState state) {
|
||||
return _isContainerUiEnabled(context)
|
||||
? null
|
||||
: const BrowserRoute().location;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, GoRouterState state) {
|
||||
return const ContainerSelectionScreen();
|
||||
@@ -149,6 +179,13 @@ class ContainerEditRoute extends GoRouteData with $ContainerEditRoute {
|
||||
|
||||
const ContainerEditRoute({required this.containerData});
|
||||
|
||||
@override
|
||||
String? redirect(BuildContext context, GoRouterState state) {
|
||||
return _isContainerUiEnabled(context)
|
||||
? null
|
||||
: const BrowserRoute().location;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, GoRouterState state) {
|
||||
return ContainerEditScreen.edit(
|
||||
@@ -165,6 +202,13 @@ class ContainerCreateRoute extends GoRouteData with $ContainerCreateRoute {
|
||||
|
||||
ContainerCreateRoute({required this.containerData, this.tabIds = '[]'});
|
||||
|
||||
@override
|
||||
String? redirect(BuildContext context, GoRouterState state) {
|
||||
return _isContainerUiEnabled(context)
|
||||
? null
|
||||
: const BrowserRoute().location;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, GoRouterState state) {
|
||||
final tabIdsList = jsonDecode(tabIds) as List;
|
||||
|
||||
@@ -23,6 +23,7 @@ import 'dart:io';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:nullability/nullability.dart';
|
||||
import 'package:weblibre/core/routing/widgets/bottom_sheet_page.dart';
|
||||
import 'package:weblibre/core/routing/widgets/dialog_page.dart';
|
||||
@@ -82,6 +83,7 @@ import 'package:weblibre/features/user/domain/presentation/screens/profile_edit.
|
||||
import 'package:weblibre/features/user/domain/presentation/screens/profile_list.dart';
|
||||
import 'package:weblibre/features/user/domain/presentation/screens/profile_restore.dart';
|
||||
import 'package:weblibre/features/user/domain/presentation/widgets/auth_gate.dart';
|
||||
import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
|
||||
import 'package:weblibre/features/web_feed/presentation/add_feed_dialog.dart';
|
||||
import 'package:weblibre/features/web_feed/presentation/screens/feed_article.dart';
|
||||
import 'package:weblibre/features/web_feed/presentation/screens/feed_article_list.dart';
|
||||
|
||||
Reference in New Issue
Block a user