improve sheet show/hide logic
This commit is contained in:
@@ -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;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+5
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user