diff --git a/lib/features/extensions/extension_table_view.dart b/lib/features/extensions/extension_table_view.dart index e62f572..38ca00e 100644 --- a/lib/features/extensions/extension_table_view.dart +++ b/lib/features/extensions/extension_table_view.dart @@ -177,6 +177,7 @@ class _ExtensionTableViewState extends material.State { } Future _openDdlDialog() async { + final navigator = material.Navigator.of(context, rootNavigator: true); unawaited(showAppDialog( context: context, barrierDismissible: false, @@ -191,8 +192,8 @@ class _ExtensionTableViewState extends material.State { nodeId: widget.tableName, nodeType: widget.isView ? 'view' : 'table', ); + if (navigator.canPop()) navigator.pop(); if (!mounted) return; - material.Navigator.of(context).pop(); final ddlText = meta.ddl?.trim().isNotEmpty == true ? meta.ddl! @@ -223,8 +224,8 @@ class _ExtensionTableViewState extends material.State { ), ); } catch (e) { + if (navigator.canPop()) navigator.pop(); if (!mounted) return; - material.Navigator.of(context).pop(); showAppToast( context: context, message: 'Failed to fetch DDL: $e', diff --git a/lib/features/sqlite/sqlite_table_view.dart b/lib/features/sqlite/sqlite_table_view.dart index fd3f4f7..28d0e39 100644 --- a/lib/features/sqlite/sqlite_table_view.dart +++ b/lib/features/sqlite/sqlite_table_view.dart @@ -194,6 +194,7 @@ class _SqliteTableViewState extends material.State { Future _showDdlDialog() async { final conn = _connection; if (conn == null || !conn.isConnected) return; + final navigator = material.Navigator.of(context, rootNavigator: true); unawaited(showAppDialog( context: context, barrierDismissible: false, @@ -203,8 +204,8 @@ class _SqliteTableViewState extends material.State { )); try { final ddl = await conn.getObjectDdl(widget.tableName); + if (navigator.canPop()) navigator.pop(); if (!mounted) return; - material.Navigator.of(context).pop(); await showAppDialog( context: context, builder: (ctx) => material.AlertDialog( @@ -230,8 +231,8 @@ class _SqliteTableViewState extends material.State { ), ); } catch (e) { + if (navigator.canPop()) navigator.pop(); if (!mounted) return; - material.Navigator.of(context).pop(); showAppToast( context: context, message: 'Failed to fetch DDL: $e',