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
void closed() {
state = null;
void closed(Sheet sheet) {
if (sheet == stateOrNull) {
state = null;
}
}
}
@@ -42,7 +42,7 @@ final class BottomSheetControllerProvider
}
String _$bottomSheetControllerHash() =>
r'21c353d433c8a964d63915cc4ebf5767e16210b1';
r'54112ccef72ad7777c746b9f2dc02da1e383c127';
abstract class _$BottomSheetController extends $Notifier<Sheet?> {
Sheet? build();
@@ -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;
}
});
@@ -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) {