use overlay buidler instead of instance

This commit is contained in:
Fabian Freund
2025-08-01 20:48:21 +02:00
parent 28a8588051
commit a3d0eadac3
5 changed files with 14 additions and 11 deletions
@@ -25,13 +25,13 @@ part 'overlay.g.dart';
@Riverpod() @Riverpod()
class OverlayController extends _$OverlayController { class OverlayController extends _$OverlayController {
@override @override
Widget? build() { WidgetBuilder? build() {
return null; return null;
} }
// ignore: use_setters_to_change_properties api decision // ignore: use_setters_to_change_properties api decision
void show(Widget dialog) { void show(WidgetBuilder builder) {
state = dialog; state = builder;
} }
void dismiss() { void dismiss() {
@@ -6,12 +6,12 @@ part of 'overlay.dart';
// RiverpodGenerator // RiverpodGenerator
// ************************************************************************** // **************************************************************************
String _$overlayControllerHash() => r'b6dc3ca17611c4efadc7e8248d493cd3c7061e01'; String _$overlayControllerHash() => r'7b7885e07ae557c14199b6942b5d6392592ab747';
/// See also [OverlayController]. /// See also [OverlayController].
@ProviderFor(OverlayController) @ProviderFor(OverlayController)
final overlayControllerProvider = final overlayControllerProvider =
AutoDisposeNotifierProvider<OverlayController, Widget?>.internal( AutoDisposeNotifierProvider<OverlayController, WidgetBuilder?>.internal(
OverlayController.new, OverlayController.new,
name: r'overlayControllerProvider', name: r'overlayControllerProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
@@ -21,6 +21,6 @@ final overlayControllerProvider =
allTransitiveDependencies: null, allTransitiveDependencies: null,
); );
typedef _$OverlayController = AutoDisposeNotifier<Widget?>; typedef _$OverlayController = AutoDisposeNotifier<WidgetBuilder?>;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
@@ -57,7 +57,7 @@ class BrowserScreen extends HookConsumerWidget {
final eventService = ref.watch(eventServiceProvider); final eventService = ref.watch(eventServiceProvider);
final displayedSheet = ref.watch(bottomSheetControllerProvider); final displayedSheet = ref.watch(bottomSheetControllerProvider);
final displayedOverlay = ref.watch(overlayControllerProvider); final overlayBuilder = ref.watch(overlayControllerProvider);
final lastBackButtonPress = useRef<DateTime?>(null); final lastBackButtonPress = useRef<DateTime?>(null);
@@ -130,7 +130,7 @@ class BrowserScreen extends HookConsumerWidget {
return OverlayPortal( return OverlayPortal(
controller: overlayController, controller: overlayController,
overlayChildBuilder: (context) { overlayChildBuilder: (context) {
return displayedOverlay!; return overlayBuilder!.call(context);
}, },
child: Listener( child: Listener(
onPointerDown: (displayedSheet != null) onPointerDown: (displayedSheet != null)
@@ -161,7 +161,7 @@ class BrowserScreen extends HookConsumerWidget {
return true; return true;
} }
if (displayedOverlay != null) { if (overlayBuilder != null) {
ref.read(overlayControllerProvider.notifier).dismiss(); ref.read(overlayControllerProvider.notifier).dismiss();
return true; return true;
} }
@@ -51,7 +51,10 @@ class StartProxyController extends _$StartProxyController {
ref ref
.read(overlayControllerProvider.notifier) .read(overlayControllerProvider.notifier)
.show(Positioned(top: 0, left: 0, child: TorNotification())); .show(
(context) =>
Positioned(top: 0, left: 0, child: TorNotification()),
);
await connection; await connection;
} }
@@ -7,7 +7,7 @@ part of 'start_tor_proxy.dart';
// ************************************************************************** // **************************************************************************
String _$startProxyControllerHash() => String _$startProxyControllerHash() =>
r'b83cdc1b6d1c358a2042ff2b7cc2f19f82e5d5ed'; r'3e8b409f069f32b601b1c60acbe0a72694fd1cc2';
/// See also [StartProxyController]. /// See also [StartProxyController].
@ProviderFor(StartProxyController) @ProviderFor(StartProxyController)