improve sheet show/hide logic

This commit is contained in:
Fabian Freund
2025-10-13 10:32:59 +02:00
parent bad2ae1446
commit 8cf3794525
4 changed files with 15 additions and 6 deletions
@@ -42,7 +42,9 @@ class BottomSheetController extends _$BottomSheetController {
} }
///This is called by UI when the sheet gets closed ///This is called by UI when the sheet gets closed
void closed() { void closed(Sheet sheet) {
state = null; if (sheet == stateOrNull) {
state = null;
}
} }
} }
@@ -42,7 +42,7 @@ final class BottomSheetControllerProvider
} }
String _$bottomSheetControllerHash() => String _$bottomSheetControllerHash() =>
r'21c353d433c8a964d63915cc4ebf5767e16210b1'; r'54112ccef72ad7777c746b9f2dc02da1e383c127';
abstract class _$BottomSheetController extends $Notifier<Sheet?> { abstract class _$BottomSheetController extends $Notifier<Sheet?> {
Sheet? build(); Sheet? build();
@@ -226,8 +226,6 @@ class BrowserScreen extends HookConsumerWidget {
} catch (_) { } catch (_) {
//silently drop closing errors //silently drop closing errors
} }
sheetController.value = null;
} }
if (next != null) { if (next != null) {
@@ -273,11 +271,15 @@ class BrowserScreen extends HookConsumerWidget {
unawaited( unawaited(
controller.closed.whenComplete(() { controller.closed.whenComplete(() {
ref.read(bottomSheetControllerProvider.notifier).closed(); ref
.read(bottomSheetControllerProvider.notifier)
.closed(next);
}), }),
); );
sheetController.value = controller; sheetController.value = controller;
} else {
sheetController.value = null;
} }
}); });
@@ -81,6 +81,11 @@ class BrowserBottomAppBar extends HookConsumerWidget {
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
if (displayedSheet case EditUrlSheet()) {
ref.read(bottomSheetControllerProvider.notifier).requestDismiss();
return;
}
final tabState = ref.read(selectedTabStateProvider); final tabState = ref.read(selectedTabStateProvider);
if (tabState != null) { if (tabState != null) {