From 53cbd946ad9e5837cdce3c8e474481e41c8fe6bd Mon Sep 17 00:00:00 2001 From: ZhuchkaTriplesix Date: Sun, 11 Oct 2026 16:00:49 +0300 Subject: [PATCH] refactor(ui): name dialogs use QueryaDialogActions for their footer ERD group / note / view name, New folder and Create database build a Cancel + primary footer by hand (12 px gap, own divider). They now use QueryaDialogActions: order, spacing 8, lg, one divider, Esc cancels. Refs #1441 --- .../connections/new_folder_dialog.dart | 24 ++++--------------- lib/features/erd/erd_group_dialog.dart | 24 ++++--------------- lib/features/erd/erd_note_dialog.dart | 24 ++++--------------- lib/features/erd/erd_view_name_dialog.dart | 24 ++++--------------- .../mongodb/mongo_database_dialog.dart | 19 ++++----------- 5 files changed, 25 insertions(+), 90 deletions(-) diff --git a/lib/features/connections/new_folder_dialog.dart b/lib/features/connections/new_folder_dialog.dart index cd3d97e5..95df99d6 100644 --- a/lib/features/connections/new_folder_dialog.dart +++ b/lib/features/connections/new_folder_dialog.dart @@ -89,35 +89,21 @@ class _NewFolderDialogContentState ], ), ), - 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( - mainAxisAlignment: material.MainAxisAlignment.end, - children: [ - QueryaButton.ghost( + ListenableBuilder( + listenable: _nameController, + builder: (context, __) => QueryaDialogActions( + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const material.SizedBox(width: 12), - ListenableBuilder( - listenable: _nameController, - builder: (context, __) => QueryaButton.primary( + primary: QueryaButton.primary( label: 'Create', onPressed: _name.isEmpty ? null : () => material.Navigator.of(context).pop(_name), size: QueryaControlSize.lg, ), - ), - ], ), ), ], diff --git a/lib/features/erd/erd_group_dialog.dart b/lib/features/erd/erd_group_dialog.dart index f52fb3f8..9e5622e5 100644 --- a/lib/features/erd/erd_group_dialog.dart +++ b/lib/features/erd/erd_group_dialog.dart @@ -105,34 +105,20 @@ class _ErdGroupDialogState extends material.State<_ErdGroupDialog> { ], ), ), - 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( - mainAxisAlignment: material.MainAxisAlignment.end, - children: [ - QueryaButton.ghost( + ListenableBuilder( + listenable: _name, + builder: (context, _) => QueryaDialogActions( + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const material.SizedBox(width: 12), - ListenableBuilder( - listenable: _name, - builder: (context, _) => QueryaButton.primary( + primary: QueryaButton.primary( key: const material.ValueKey('erd_group_submit'), label: widget.action, onPressed: _name.text.trim().isEmpty ? null : _submit, size: QueryaControlSize.lg, ), - ), - ], ), ), ], diff --git a/lib/features/erd/erd_note_dialog.dart b/lib/features/erd/erd_note_dialog.dart index 02e42217..28e42801 100644 --- a/lib/features/erd/erd_note_dialog.dart +++ b/lib/features/erd/erd_note_dialog.dart @@ -81,27 +81,15 @@ class _ErdNoteDialogState extends material.State<_ErdNoteDialog> { ], ), ), - 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( - mainAxisAlignment: material.MainAxisAlignment.end, - children: [ - QueryaButton.ghost( + ListenableBuilder( + listenable: _text, + builder: (context, _) => QueryaDialogActions( + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const material.SizedBox(width: 12), - ListenableBuilder( - listenable: _text, - builder: (context, _) => QueryaButton.primary( + primary: QueryaButton.primary( key: const material.ValueKey('erd_note_submit'), label: widget.action, onPressed: _text.text.trim().isEmpty @@ -110,8 +98,6 @@ class _ErdNoteDialogState extends material.State<_ErdNoteDialog> { .pop(_text.text.trim()), size: QueryaControlSize.lg, ), - ), - ], ), ), ], diff --git a/lib/features/erd/erd_view_name_dialog.dart b/lib/features/erd/erd_view_name_dialog.dart index 24b30890..8856f02a 100644 --- a/lib/features/erd/erd_view_name_dialog.dart +++ b/lib/features/erd/erd_view_name_dialog.dart @@ -87,34 +87,20 @@ class _ErdViewNameDialogState extends material.State<_ErdViewNameDialog> { ], ), ), - 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( - mainAxisAlignment: material.MainAxisAlignment.end, - children: [ - QueryaButton.ghost( + ListenableBuilder( + listenable: _name, + builder: (context, _) => QueryaDialogActions( + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const material.SizedBox(width: 12), - ListenableBuilder( - listenable: _name, - builder: (context, _) => QueryaButton.primary( + primary: QueryaButton.primary( key: const material.ValueKey('erd_view_submit'), label: widget.action, onPressed: _name.text.trim().isEmpty ? null : _submit, size: QueryaControlSize.lg, ), - ), - ], ), ), ], diff --git a/lib/features/mongodb/mongo_database_dialog.dart b/lib/features/mongodb/mongo_database_dialog.dart index 967b577d..f76396ba 100644 --- a/lib/features/mongodb/mongo_database_dialog.dart +++ b/lib/features/mongodb/mongo_database_dialog.dart @@ -86,28 +86,19 @@ class _CreateMongoDBDialogContentState ], ), ), - const QueryaDivider(height: 1), - material.Container( - padding: const material.EdgeInsets.symmetric( - horizontal: 24, vertical: 16), - child: material.Row( - mainAxisAlignment: material.MainAxisAlignment.end, - children: [ - QueryaButton.ghost( + ListenableBuilder( + listenable: _nameController, + builder: (context, __) => QueryaDialogActions( + cancel: QueryaButton.ghost( label: 'Cancel', onPressed: () => material.Navigator.of(context).pop(), size: QueryaControlSize.lg, ), - const Gap(12), - ListenableBuilder( - listenable: _nameController, - builder: (context, __) => QueryaButton.primary( + primary: QueryaButton.primary( label: 'Create', onPressed: _formValid ? _save : null, size: QueryaControlSize.lg, ), - ), - ], ), ), ],