limit tab sugegstions to 3; allow direct container edit
This commit is contained in:
@@ -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?> {
|
||||
|
||||
+11
-13
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user