limit tab sugegstions to 3; allow direct container edit

This commit is contained in:
Fabian Freund
2025-10-02 12:06:59 +02:00
parent 20f077d254
commit 550e1dd119
3 changed files with 23 additions and 14 deletions
@@ -34,6 +34,7 @@ import 'package:weblibre/features/geckoview/features/tabs/data/entities/tab_enti
import 'package:weblibre/features/geckoview/features/tabs/domain/providers.dart';
import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/gecko_inference.dart';
import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/tab_search.dart';
import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
part 'providers.g.dart';
@@ -113,6 +114,16 @@ EquatableValue<List<TabEntity>> suggestedTabEntities(
Ref ref,
String? containerId,
) {
final enableAiFeatures = ref.watch(
generalSettingsWithDefaultsProvider.select(
(settings) => settings.enableLocalAiFeatures,
),
);
if (!enableAiFeatures) {
return EquatableValue([]);
}
final excludedTabIds = ref.watch(
containerTabIdsProvider(
// ignore: provider_parameters
@@ -448,7 +448,7 @@ final class SuggestedTabEntitiesProvider
}
String _$suggestedTabEntitiesHash() =>
r'84a85520dc589e4bcc4afa2a63691ad08be25ddd';
r'534e78a9d1ddc5bace24dc0d9e5efee1292107c5';
final class SuggestedTabEntitiesFamily extends $Family
with $FunctionalFamilyOverride<EquatableValue<List<TabEntity>>, String?> {
@@ -21,6 +21,7 @@ import 'dart:async';
import 'dart:math' as math;
import 'package:fading_scroll/fading_scroll.dart';
import 'package:fast_equatable/fast_equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
@@ -350,6 +351,9 @@ class _TabSheetHeader extends HookConsumerWidget {
.read(selectedContainerProvider.notifier)
.clearContainer();
},
onLongPress: (container) async {
await ContainerEditRoute(container).push(context);
},
);
},
),
@@ -413,22 +417,15 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
final tabSuggestionsEnabled = ref.watch(
tabSuggestionsControllerProvider,
);
final enableAiFeatures = ref.watch(
generalSettingsWithDefaultsProvider.select(
(settings) => settings.enableLocalAiFeatures,
),
);
final suggestedTabEntities = ref.watch(
suggestedTabEntitiesProvider(
(enableAiFeatures && tabSuggestionsEnabled)
? containerId
: null,
),
);
final suggestedTabEntities = tabSuggestionsEnabled
? ref.watch(suggestedTabEntitiesProvider(containerId))
: EquatableValue(<TabEntity>[]);
final itemCount =
filteredTabEntities.value.length +
suggestedTabEntities.value.length;
//Limit to 3 sugegstions for now
math.max<int>(suggestedTabEntities.value.length, 3);
final activeTab = ref.watch(selectedTabProvider);
@@ -580,6 +577,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
index - filteredTabEntities.value.length;
final entity =
suggestedTabEntities.value[suggestedIndex];
tab = CustomDraggable(
key: Key('suggested_${entity.tabId}'),
child: _TabDraggable(