settings for readability & default search

This commit is contained in:
Fabian Freund
2025-05-17 19:47:56 +02:00
parent baa67d2c0b
commit 9af6ff6630
12 changed files with 212 additions and 33 deletions
@@ -20,6 +20,12 @@ class ReaderButton extends HookConsumerWidget {
),
);
final enforceReadability = ref.watch(
generalSettingsRepositoryProvider.select(
(value) => value.enforceReadability,
),
);
final readerabilityState = ref.watch(
selectedTabStateProvider.select(
(state) => state?.readerableState ?? ReaderableState.$default(),
@@ -39,29 +45,27 @@ class ReaderButton extends HookConsumerWidget {
return Visibility(
visible:
readerabilityState.readerable &&
(enableReadability || readerabilityState.active),
(readerabilityState.readerable &&
(enableReadability || readerabilityState.active)) ||
(enforceReadability && enableReadability),
child: readerChanging.when(
skipLoadingOnReload: true,
data:
(_) => Visibility(
visible: readerabilityState.readerable,
child: InkWell(
onTap:
readerChanging.isLoading
? null
: () async {
await ref
.read(readerableScreenControllerProvider.notifier)
.toggleReaderView(!readerabilityState.active);
},
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: 15.0,
horizontal: 8.0,
),
child: icon,
(_) => InkWell(
onTap:
readerChanging.isLoading
? null
: () async {
await ref
.read(readerableScreenControllerProvider.notifier)
.toggleReaderView(!readerabilityState.active);
},
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: 15.0,
horizontal: 8.0,
),
child: icon,
),
),
error: (error, stackTrace) => SizedBox.shrink(),
@@ -4,6 +4,7 @@ import 'package:lensai/core/routing/routes.dart';
import 'package:lensai/extensions/nullable.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart';
import 'package:lensai/features/bangs/domain/providers/search.dart';
import 'package:lensai/features/geckoview/features/browser/domain/providers.dart';
import 'package:lensai/presentation/hooks/listenable_callback.dart';
import 'package:lensai/presentation/widgets/selectable_chips.dart';
import 'package:lensai/presentation/widgets/url_icon.dart';
@@ -98,12 +99,18 @@ class BangChips extends HookConsumerWidget {
onPressed: () async {
final searchText = searchTextController?.text.trim();
await BangSearchRoute(
final trigger = await BangSearchRoute(
searchText:
(searchText.isEmpty)
? BangSearchRoute.emptySearchText
: searchText!,
).push(context);
).push<String?>(context);
if (trigger != null) {
ref
.read(selectedBangTriggerProvider().notifier)
.setTrigger(trigger);
}
},
icon: const Icon(Icons.chevron_right),
),