provider mounted hardenings

This commit is contained in:
Fabian Freund
2025-10-02 13:34:47 +02:00
parent 550e1dd119
commit ae49d0f937
32 changed files with 197 additions and 146 deletions
@@ -42,51 +42,59 @@ GeckoSelectionActionService selectionActionService(Ref ref) {
unawaited(
service.setActions([
NewTabAction((text) async {
final router = await ref.read(routerProvider.future);
final settings = ref.read(generalSettingsWithDefaultsProvider);
final route = SearchRoute(
tabType:
// ignore: only_use_keep_alive_inside_keep_alive
ref.read(selectedTabTypeProvider) ??
settings.defaultCreateTabType,
searchText: text,
);
if (ref.mounted) {
final router = await ref.read(routerProvider.future);
if (ref.mounted) {
final settings = ref.read(generalSettingsWithDefaultsProvider);
final route = SearchRoute(
tabType:
// ignore: only_use_keep_alive_inside_keep_alive
ref.read(selectedTabTypeProvider) ??
settings.defaultCreateTabType,
searchText: text,
);
await router.push(route.location);
await router.push(route.location);
}
}
}),
DefaultSearchAction((text) async {
final defaultSearchBang = await ref.read(
defaultSearchBangDataProvider.future,
);
if (ref.mounted) {
final defaultSearchBang = await ref.read(
defaultSearchBangDataProvider.future,
);
if (defaultSearchBang != null) {
// ignore: only_use_keep_alive_inside_keep_alive
final currentTab = ref.read(selectedTabStateProvider);
final isPrivate =
currentTab?.isPrivate ??
ref
.read(generalSettingsWithDefaultsProvider)
.defaultCreateTabType ==
TabType.private;
if (ref.mounted && defaultSearchBang != null) {
// ignore: only_use_keep_alive_inside_keep_alive
final currentTab = ref.read(selectedTabStateProvider);
final isPrivate =
currentTab?.isPrivate ??
ref
.read(generalSettingsWithDefaultsProvider)
.defaultCreateTabType ==
TabType.private;
await ref
.read(tabRepositoryProvider.notifier)
.addTab(
url: defaultSearchBang.getTemplateUrl(text),
parentId: currentTab?.id,
private: isPrivate,
);
} else {
logger.e('No default search bang found');
await ref
.read(tabRepositoryProvider.notifier)
.addTab(
url: defaultSearchBang.getTemplateUrl(text),
parentId: currentTab?.id,
private: isPrivate,
);
} else {
logger.e('No default search bang found');
}
}
}),
FindInPageAction((text) async {
final tabId = ref.read(selectedTabProvider);
if (tabId != null) {
// ignore: only_use_keep_alive_inside_keep_alive
await ref
.read(findInPageControllerProvider(tabId).notifier)
.findAll(text: text);
if (ref.mounted) {
final tabId = ref.read(selectedTabProvider);
if (tabId != null) {
// ignore: only_use_keep_alive_inside_keep_alive
await ref
.read(findInPageControllerProvider(tabId).notifier)
.findAll(text: text);
}
}
}),
ShareAction((text) async {