From 4064907921bca1e53dd164f5051ed4b539262dbb Mon Sep 17 00:00:00 2001 From: Arseni Date: Fri, 30 Jan 2026 20:10:16 +0300 Subject: [PATCH] visual fix for invitations from --- .../invitations/widgets/form/fields.dart | 66 ++++++++++--------- .../pages/invitations/widgets/form/view.dart | 2 - 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/frontend/pweb/lib/pages/invitations/widgets/form/fields.dart b/frontend/pweb/lib/pages/invitations/widgets/form/fields.dart index 45129322..72d59968 100644 --- a/frontend/pweb/lib/pages/invitations/widgets/form/fields.dart +++ b/frontend/pweb/lib/pages/invitations/widgets/form/fields.dart @@ -11,10 +11,11 @@ class InvitationFormFields extends StatelessWidget { final TextEditingController firstNameController; final TextEditingController lastNameController; final TextEditingController messageController; - final bool canCreateRoles; - final VoidCallback onCreateRole; final String? selectedRoleRef; final ValueChanged onRoleChanged; + static const double _fieldWidth = 250.0; + static const double _rowSpacing = 40.0; + static const double _rowGap = 12.0; const InvitationFormFields({ super.key, @@ -23,8 +24,6 @@ class InvitationFormFields extends StatelessWidget { required this.firstNameController, required this.lastNameController, required this.messageController, - required this.canCreateRoles, - required this.onCreateRole, required this.selectedRoleRef, required this.onRoleChanged, }); @@ -34,12 +33,11 @@ class InvitationFormFields extends StatelessWidget { final loc = AppLocalizations.of(context)!; return Column( children: [ - Wrap( - spacing: 12, - runSpacing: 12, + Row( + spacing: _rowSpacing, children: [ SizedBox( - width: 320, + width: _fieldWidth, child: TextFormField( controller: emailController, decoration: InputDecoration( @@ -53,7 +51,33 @@ class InvitationFormFields extends StatelessWidget { ), ), SizedBox( - width: 200, + width: _fieldWidth, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + DropdownButtonFormField( + initialValue: selectedRoleRef, + items: roles.map((role) => DropdownMenuItem( + value: role.storable.id, + child: Text(role.describable.name), + )).toList(), + onChanged: roles.isEmpty ? null : onRoleChanged, + decoration: InputDecoration( + labelText: loc.invitationRoleLabel, + prefixIcon: const Icon(Icons.security_outlined), + ), + ), + ], + ), + ), + ], + ), + SizedBox(height: _rowGap), + Row( + spacing: _rowSpacing, + children: [ + SizedBox( + width: _fieldWidth, child: TextFormField( controller: firstNameController, decoration: InputDecoration( @@ -63,7 +87,7 @@ class InvitationFormFields extends StatelessWidget { ), ), SizedBox( - width: 200, + width: _fieldWidth, child: TextFormField( controller: lastNameController, decoration: InputDecoration( @@ -72,29 +96,9 @@ class InvitationFormFields extends StatelessWidget { ), ), ), - SizedBox( - width: 260, - child: DropdownButtonFormField( - initialValue: selectedRoleRef, - items: roles.map((role) => DropdownMenuItem( - value: role.storable.id, - child: Text(role.describable.name), - )).toList(), - onChanged: roles.isEmpty ? null : onRoleChanged, - decoration: InputDecoration( - labelText: loc.invitationRoleLabel, - prefixIcon: const Icon(Icons.security_outlined), - suffixIcon: IconButton( - onPressed: canCreateRoles ? onCreateRole : null, - icon: const Icon(Icons.add_circle_outline), - tooltip: loc.invitationAddRoleButton, - ), - ), - ), - ), ], ), - const SizedBox(height: 12), + const SizedBox(height: _rowGap), TextFormField( controller: messageController, minLines: 2, diff --git a/frontend/pweb/lib/pages/invitations/widgets/form/view.dart b/frontend/pweb/lib/pages/invitations/widgets/form/view.dart index 38ef2251..748e8acd 100644 --- a/frontend/pweb/lib/pages/invitations/widgets/form/view.dart +++ b/frontend/pweb/lib/pages/invitations/widgets/form/view.dart @@ -70,8 +70,6 @@ class InvitationFormView extends StatelessWidget { firstNameController: firstNameController, lastNameController: lastNameController, messageController: messageController, - canCreateRoles: canCreateRoles, - onCreateRole: onCreateRole, selectedRoleRef: selectedRoleRef, onRoleChanged: onRoleChanged, ),