diff --git a/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart b/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart index 6d31c644..d1180c39 100644 --- a/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart +++ b/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart @@ -42,7 +42,9 @@ class BottomSheetController extends _$BottomSheetController { } ///This is called by UI when the sheet gets closed - void closed() { - state = null; + void closed(Sheet sheet) { + if (sheet == stateOrNull) { + state = null; + } } } diff --git a/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart b/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart index 7d2dcc72..71a62b5e 100644 --- a/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart +++ b/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart @@ -42,7 +42,7 @@ final class BottomSheetControllerProvider } String _$bottomSheetControllerHash() => - r'21c353d433c8a964d63915cc4ebf5767e16210b1'; + r'54112ccef72ad7777c746b9f2dc02da1e383c127'; abstract class _$BottomSheetController extends $Notifier { Sheet? build(); diff --git a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart index 4e5f5f6c..fec5a184 100644 --- a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart +++ b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart @@ -226,8 +226,6 @@ class BrowserScreen extends HookConsumerWidget { } catch (_) { //silently drop closing errors } - - sheetController.value = null; } if (next != null) { @@ -273,11 +271,15 @@ class BrowserScreen extends HookConsumerWidget { unawaited( controller.closed.whenComplete(() { - ref.read(bottomSheetControllerProvider.notifier).closed(); + ref + .read(bottomSheetControllerProvider.notifier) + .closed(next); }), ); sheetController.value = controller; + } else { + sheetController.value = null; } }); diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/bottom_app_bar.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/bottom_app_bar.dart index 427faa83..fc15cb82 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/bottom_app_bar.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/bottom_app_bar.dart @@ -81,6 +81,11 @@ class BrowserBottomAppBar extends HookConsumerWidget { padding: EdgeInsets.zero, child: GestureDetector( onTap: () { + if (displayedSheet case EditUrlSheet()) { + ref.read(bottomSheetControllerProvider.notifier).requestDismiss(); + return; + } + final tabState = ref.read(selectedTabStateProvider); if (tabState != null) {