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
|
///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;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+5
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user