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/providers.dart';
|
||||||
import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/gecko_inference.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/geckoview/features/tabs/domain/repositories/tab_search.dart';
|
||||||
|
import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
|
||||||
|
|
||||||
part 'providers.g.dart';
|
part 'providers.g.dart';
|
||||||
|
|
||||||
@@ -113,6 +114,16 @@ EquatableValue<List<TabEntity>> suggestedTabEntities(
|
|||||||
Ref ref,
|
Ref ref,
|
||||||
String? containerId,
|
String? containerId,
|
||||||
) {
|
) {
|
||||||
|
final enableAiFeatures = ref.watch(
|
||||||
|
generalSettingsWithDefaultsProvider.select(
|
||||||
|
(settings) => settings.enableLocalAiFeatures,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!enableAiFeatures) {
|
||||||
|
return EquatableValue([]);
|
||||||
|
}
|
||||||
|
|
||||||
final excludedTabIds = ref.watch(
|
final excludedTabIds = ref.watch(
|
||||||
containerTabIdsProvider(
|
containerTabIdsProvider(
|
||||||
// ignore: provider_parameters
|
// ignore: provider_parameters
|
||||||
|
|||||||
@@ -448,7 +448,7 @@ final class SuggestedTabEntitiesProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
String _$suggestedTabEntitiesHash() =>
|
String _$suggestedTabEntitiesHash() =>
|
||||||
r'84a85520dc589e4bcc4afa2a63691ad08be25ddd';
|
r'534e78a9d1ddc5bace24dc0d9e5efee1292107c5';
|
||||||
|
|
||||||
final class SuggestedTabEntitiesFamily extends $Family
|
final class SuggestedTabEntitiesFamily extends $Family
|
||||||
with $FunctionalFamilyOverride<EquatableValue<List<TabEntity>>, String?> {
|
with $FunctionalFamilyOverride<EquatableValue<List<TabEntity>>, String?> {
|
||||||
|
|||||||
+11
-13
@@ -21,6 +21,7 @@ import 'dart:async';
|
|||||||
import 'dart:math' as math;
|
import 'dart:math' as math;
|
||||||
|
|
||||||
import 'package:fading_scroll/fading_scroll.dart';
|
import 'package:fading_scroll/fading_scroll.dart';
|
||||||
|
import 'package:fast_equatable/fast_equatable.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
|
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
|
||||||
@@ -350,6 +351,9 @@ class _TabSheetHeader extends HookConsumerWidget {
|
|||||||
.read(selectedContainerProvider.notifier)
|
.read(selectedContainerProvider.notifier)
|
||||||
.clearContainer();
|
.clearContainer();
|
||||||
},
|
},
|
||||||
|
onLongPress: (container) async {
|
||||||
|
await ContainerEditRoute(container).push(context);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -413,22 +417,15 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
|
|||||||
final tabSuggestionsEnabled = ref.watch(
|
final tabSuggestionsEnabled = ref.watch(
|
||||||
tabSuggestionsControllerProvider,
|
tabSuggestionsControllerProvider,
|
||||||
);
|
);
|
||||||
final enableAiFeatures = ref.watch(
|
|
||||||
generalSettingsWithDefaultsProvider.select(
|
final suggestedTabEntities = tabSuggestionsEnabled
|
||||||
(settings) => settings.enableLocalAiFeatures,
|
? ref.watch(suggestedTabEntitiesProvider(containerId))
|
||||||
),
|
: EquatableValue(<TabEntity>[]);
|
||||||
);
|
|
||||||
final suggestedTabEntities = ref.watch(
|
|
||||||
suggestedTabEntitiesProvider(
|
|
||||||
(enableAiFeatures && tabSuggestionsEnabled)
|
|
||||||
? containerId
|
|
||||||
: null,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
final itemCount =
|
final itemCount =
|
||||||
filteredTabEntities.value.length +
|
filteredTabEntities.value.length +
|
||||||
suggestedTabEntities.value.length;
|
//Limit to 3 sugegstions for now
|
||||||
|
math.max<int>(suggestedTabEntities.value.length, 3);
|
||||||
|
|
||||||
final activeTab = ref.watch(selectedTabProvider);
|
final activeTab = ref.watch(selectedTabProvider);
|
||||||
|
|
||||||
@@ -580,6 +577,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
|
|||||||
index - filteredTabEntities.value.length;
|
index - filteredTabEntities.value.length;
|
||||||
final entity =
|
final entity =
|
||||||
suggestedTabEntities.value[suggestedIndex];
|
suggestedTabEntities.value[suggestedIndex];
|
||||||
|
|
||||||
tab = CustomDraggable(
|
tab = CustomDraggable(
|
||||||
key: Key('suggested_${entity.tabId}'),
|
key: Key('suggested_${entity.tabId}'),
|
||||||
child: _TabDraggable(
|
child: _TabDraggable(
|
||||||
|
|||||||
Reference in New Issue
Block a user