Use navigator context for close dialog
This commit is contained in:
+6
-1
@@ -40,6 +40,7 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
|
||||
ProviderSubscription<WalletState>? _walletSubscription;
|
||||
final GlobalKey<ScaffoldMessengerState> _scaffoldMessengerKey =
|
||||
GlobalKey<ScaffoldMessengerState>();
|
||||
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
|
||||
String? _lastErrorMessage;
|
||||
bool _desktopCloseHookInitialized = false;
|
||||
bool _handlingWindowClose = false;
|
||||
@@ -162,6 +163,8 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
|
||||
await windowManager.setPreventClose(false);
|
||||
await _logCloseDebug('handleNativeWindowClose destroying window');
|
||||
await windowManager.destroy();
|
||||
} catch (error, stack) {
|
||||
await _logCloseDebug('handleNativeWindowClose error: $error\n$stack');
|
||||
} finally {
|
||||
await _logCloseDebug('handleNativeWindowClose finished');
|
||||
_handlingWindowClose = false;
|
||||
@@ -329,7 +332,8 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
|
||||
await _logCloseDebug('handleAppCloseRequest aborted: not mounted');
|
||||
return false;
|
||||
}
|
||||
final dialogContext = _scaffoldMessengerKey.currentContext ?? context;
|
||||
final dialogContext =
|
||||
_navigatorKey.currentContext ?? _scaffoldMessengerKey.currentContext ?? context;
|
||||
final l10n = AppLocalizations.of(dialogContext);
|
||||
await _logCloseDebug('handleAppCloseRequest showing dialog');
|
||||
final decision = await showDialog<bool?>(
|
||||
@@ -418,6 +422,7 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
|
||||
onGenerateTitle: (context) => AppLocalizations.of(context)!.appTitle,
|
||||
debugShowCheckedModeBanner: false,
|
||||
scaffoldMessengerKey: _scaffoldMessengerKey,
|
||||
navigatorKey: _navigatorKey,
|
||||
theme: _buildTheme(),
|
||||
locale: config.resolveLocale(),
|
||||
supportedLocales: const [
|
||||
|
||||
Reference in New Issue
Block a user