Refactor CommunityDialog: Extract error message display into a separate method _buildErrorMessage for improved readability and maintainability. This change enhances the structure of the dialog while ensuring consistent error handling.

This commit is contained in:
Faris Armoush
2025-07-06 12:32:18 +03:00
parent 823d86fd80
commit fdea4b1cd0

View File

@ -3,6 +3,7 @@ import 'package:syncrow_web/pages/common/buttons/cancel_button.dart';
import 'package:syncrow_web/pages/common/buttons/default_button.dart'; import 'package:syncrow_web/pages/common/buttons/default_button.dart';
import 'package:syncrow_web/pages/space_management_v2/modules/create_community/presentation/create_community_name_text_field.dart'; import 'package:syncrow_web/pages/space_management_v2/modules/create_community/presentation/create_community_name_text_field.dart';
import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/color_manager.dart';
import 'package:syncrow_web/utils/extension/build_context_x.dart';
class CommunityDialog extends StatefulWidget { class CommunityDialog extends StatefulWidget {
final String? initialName; final String? initialName;
@ -72,19 +73,8 @@ class _CommunityDialogState extends State<CommunityDialog> {
child: widget.title, child: widget.title,
), ),
const SizedBox(height: 18), const SizedBox(height: 18),
CreateCommunityNameTextField( CreateCommunityNameTextField(nameController: _nameController),
nameController: _nameController, _buildErrorMessage(),
),
if (widget.errorMessage != null)
Padding(
padding: const EdgeInsets.only(top: 18),
child: SelectableText(
'* ${widget.errorMessage}',
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
color: Theme.of(context).colorScheme.error,
),
),
),
const SizedBox(height: 24), const SizedBox(height: 24),
_buildActionButtons(context), _buildActionButtons(context),
], ],
@ -131,4 +121,19 @@ class _CommunityDialogState extends State<CommunityDialog> {
widget.onSubmit.call(_nameController.text.trim()); widget.onSubmit.call(_nameController.text.trim());
} }
} }
Widget _buildErrorMessage() {
return Visibility(
visible: widget.errorMessage != null,
child: Padding(
padding: const EdgeInsetsDirectional.symmetric(vertical: 18),
child: SelectableText(
'* ${widget.errorMessage}',
style: context.textTheme.bodyMedium?.copyWith(
color: context.theme.colorScheme.error,
),
),
),
);
}
} }