diff --git a/lib/features/connections/extension_connection_form.dart b/lib/features/connections/extension_connection_form.dart index da776a74..6cda1a20 100644 --- a/lib/features/connections/extension_connection_form.dart +++ b/lib/features/connections/extension_connection_form.dart @@ -279,41 +279,26 @@ class _ExtensionConnectionFormContentState ), material.FocusTraversalGroup( policy: material.WidgetOrderTraversalPolicy(), - child: material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, - vertical: 16, - ), - decoration: material.BoxDecoration( - border: material.Border( - top: material.BorderSide( - color: theme.border.withValues(alpha: 0.3), - ), - ), - ), - child: material.Row( - children: [ - QueryaButton.secondary( + child: QueryaDialogActions( + secondary: [ + QueryaButton.secondary( label: 'Test Connection', icon: material.Icons.bolt_rounded, loading: _testing, size: QueryaControlSize.lg, onPressed: _schema == null || _testing ? null : _testConnection, ), - const Spacer(), - QueryaButton.ghost( + ], + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const material.SizedBox(width: 12), - QueryaButton.primary( + primary: QueryaButton.primary( label: 'Save', onPressed: _schema == null ? null : _save, size: QueryaControlSize.lg, ), - ], - ), ), ), ], diff --git a/lib/features/connections/sqlite_connection_form.dart b/lib/features/connections/sqlite_connection_form.dart index e057d614..1d28211b 100644 --- a/lib/features/connections/sqlite_connection_form.dart +++ b/lib/features/connections/sqlite_connection_form.dart @@ -385,44 +385,29 @@ class _SqliteConnectionFormContentState // Footer material.FocusTraversalGroup( policy: material.WidgetOrderTraversalPolicy(), - child: material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, vertical: 16), - child: ValueListenableBuilder( - valueListenable: _formValidNotifier.listenable, - builder: (context, formValid, _) { - return material.Wrap( - spacing: 12, - runSpacing: 8, - alignment: material.WrapAlignment.spaceBetween, - children: [ - QueryaButton.secondary( + child: ValueListenableBuilder( + valueListenable: _formValidNotifier.listenable, + builder: (context, formValid, _) => QueryaDialogActions( + secondary: [ + QueryaButton.secondary( label: 'Test Connection', icon: material.Icons.link_rounded, loading: _isTesting, size: QueryaControlSize.lg, onPressed: formValid && !_isTesting ? _testConnection : null, ), - material.Row( - mainAxisSize: material.MainAxisSize.min, - children: [ - QueryaButton.ghost( + ], + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const Gap(12), - QueryaButton.primary( + primary: QueryaButton.primary( label: 'Save', onPressed: formValid ? _save : null, size: QueryaControlSize.lg, ), - ], - ), - ], - ); - }, ), ), ), diff --git a/lib/features/mongodb/mongodb_connection_form.dart b/lib/features/mongodb/mongodb_connection_form.dart index 965ebcdb..3e7fc6cd 100644 --- a/lib/features/mongodb/mongodb_connection_form.dart +++ b/lib/features/mongodb/mongodb_connection_form.dart @@ -644,36 +644,28 @@ class _MongoConnectionFormContentState ), material.FocusTraversalGroup( policy: material.WidgetOrderTraversalPolicy(), - child: material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, vertical: 16), - child: ValueListenableBuilder( - valueListenable: _formValidNotifier.listenable, - builder: (context, formValid, _) { - return material.Row( - children: [ - QueryaButton.secondary( + child: ValueListenableBuilder( + valueListenable: _formValidNotifier.listenable, + builder: (context, formValid, _) => QueryaDialogActions( + secondary: [ + QueryaButton.secondary( label: 'Test Connection', icon: material.Icons.link_rounded, loading: _isTesting, size: QueryaControlSize.lg, onPressed: formValid && !_isTesting ? _testConnection : null, ), - const material.Spacer(), - QueryaButton.ghost( + ], + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const Gap(12), - QueryaButton.primary( + primary: QueryaButton.primary( label: 'Save', onPressed: formValid ? _save : null, size: QueryaControlSize.lg, ), - ], - ); - }, ), ), ), diff --git a/lib/features/mysql/mysql_connection_form.dart b/lib/features/mysql/mysql_connection_form.dart index 85e7226f..2b1b72f2 100644 --- a/lib/features/mysql/mysql_connection_form.dart +++ b/lib/features/mysql/mysql_connection_form.dart @@ -549,44 +549,29 @@ class _MysqlConnectionFormContentState ), material.FocusTraversalGroup( policy: material.WidgetOrderTraversalPolicy(), - child: material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, vertical: 16), - child: ValueListenableBuilder( - valueListenable: _formValidNotifier.listenable, - builder: (context, formValid, _) { - return material.Wrap( - spacing: 12, - runSpacing: 8, - alignment: material.WrapAlignment.spaceBetween, - children: [ - QueryaButton.secondary( + child: ValueListenableBuilder( + valueListenable: _formValidNotifier.listenable, + builder: (context, formValid, _) => QueryaDialogActions( + secondary: [ + QueryaButton.secondary( label: 'Test Connection', icon: material.Icons.link_rounded, loading: _isTesting, size: QueryaControlSize.lg, onPressed: formValid && !_isTesting ? _testConnection : null, ), - material.Row( - mainAxisSize: material.MainAxisSize.min, - children: [ - QueryaButton.ghost( + ], + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const Gap(12), - QueryaButton.primary( + primary: QueryaButton.primary( label: 'Save', onPressed: formValid ? _save : null, size: QueryaControlSize.lg, ), - ], - ), - ], - ); - }, ), ), ), diff --git a/lib/features/postgresql/postgresql_connection_form.dart b/lib/features/postgresql/postgresql_connection_form.dart index a28a7f7b..261f4f0a 100644 --- a/lib/features/postgresql/postgresql_connection_form.dart +++ b/lib/features/postgresql/postgresql_connection_form.dart @@ -771,44 +771,29 @@ class _PostgresConnectionFormContentState // Footer — Wrap avoids overflow on narrow viewports (e.g. in tests) material.FocusTraversalGroup( policy: material.WidgetOrderTraversalPolicy(), - child: material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, vertical: 16), - child: ValueListenableBuilder( - valueListenable: _formValidNotifier.listenable, - builder: (context, formValid, _) { - return material.Wrap( - spacing: 12, - runSpacing: 8, - alignment: material.WrapAlignment.spaceBetween, - children: [ - QueryaButton.secondary( + child: ValueListenableBuilder( + valueListenable: _formValidNotifier.listenable, + builder: (context, formValid, _) => QueryaDialogActions( + secondary: [ + QueryaButton.secondary( label: 'Test Connection', icon: material.Icons.link_rounded, loading: _isTesting, size: QueryaControlSize.lg, onPressed: formValid && !_isTesting ? _testConnection : null, ), - material.Row( - mainAxisSize: material.MainAxisSize.min, - children: [ - QueryaButton.ghost( + ], + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const Gap(12), - QueryaButton.primary( + primary: QueryaButton.primary( label: 'Save', onPressed: formValid ? _save : null, size: QueryaControlSize.lg, ), - ], - ), - ], - ); - }, ), ), ), diff --git a/lib/features/redis/redis_connection_form.dart b/lib/features/redis/redis_connection_form.dart index 42e50281..497c7779 100644 --- a/lib/features/redis/redis_connection_form.dart +++ b/lib/features/redis/redis_connection_form.dart @@ -563,36 +563,28 @@ class _RedisConnectionFormContentState ), material.FocusTraversalGroup( policy: material.WidgetOrderTraversalPolicy(), - child: material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, vertical: 16), - child: ValueListenableBuilder( - valueListenable: _formValidNotifier.listenable, - builder: (context, formValid, _) { - return material.Row( - children: [ - QueryaButton.secondary( + child: ValueListenableBuilder( + valueListenable: _formValidNotifier.listenable, + builder: (context, formValid, _) => QueryaDialogActions( + secondary: [ + QueryaButton.secondary( label: 'Test Connection', icon: material.Icons.link_rounded, loading: _isTesting, size: QueryaControlSize.lg, onPressed: formValid && !_isTesting ? _testConnection : null, ), - const material.Spacer(), - QueryaButton.ghost( + ], + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const Gap(12), - QueryaButton.primary( + primary: QueryaButton.primary( label: 'Save', onPressed: formValid ? _save : null, size: QueryaControlSize.lg, ), - ], - ); - }, ), ), ),