mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-08-24 20:42:27 +00:00
Matched design of duplicate space dialog, with the design language of the system.
This commit is contained in:
@ -31,6 +31,7 @@ class DuplicateSpaceDialog extends StatelessWidget {
|
||||
child: BlocListener<DuplicateSpaceBloc, DuplicateSpaceState>(
|
||||
listener: _listener,
|
||||
child: DuplicateSpaceDialogForm(
|
||||
initialNameSuffix: '(1)',
|
||||
initialName: initialName,
|
||||
selectedSpaceUuid: selectedSpaceUuid,
|
||||
selectedCommunityUuid: selectedCommunityUuid,
|
||||
|
@ -3,18 +3,22 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/duplicate_space/domain/params/duplicate_space_param.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/duplicate_space/presentation/bloc/duplicate_space_bloc.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/duplicate_space/presentation/widgets/duplicate_space_text_field.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/space_details/presentation/widgets/space_details_action_buttons.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
|
||||
class DuplicateSpaceDialogForm extends StatefulWidget {
|
||||
const DuplicateSpaceDialogForm({
|
||||
required this.initialName,
|
||||
required this.selectedSpaceUuid,
|
||||
required this.selectedCommunityUuid,
|
||||
required this.initialNameSuffix,
|
||||
super.key,
|
||||
});
|
||||
|
||||
final String initialName;
|
||||
final String selectedSpaceUuid;
|
||||
final String selectedCommunityUuid;
|
||||
final String initialNameSuffix;
|
||||
|
||||
@override
|
||||
State<DuplicateSpaceDialogForm> createState() => _DuplicateSpaceDialogFormState();
|
||||
@ -27,7 +31,9 @@ class _DuplicateSpaceDialogFormState extends State<DuplicateSpaceDialogForm> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_nameController = TextEditingController(text: '${widget.initialName}(1)');
|
||||
_nameController = TextEditingController(
|
||||
text: '${widget.initialName}${widget.initialNameSuffix}',
|
||||
);
|
||||
_nameController.addListener(_validateName);
|
||||
}
|
||||
|
||||
@ -44,9 +50,17 @@ class _DuplicateSpaceDialogFormState extends State<DuplicateSpaceDialogForm> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: const SelectableText('Duplicate Space'),
|
||||
title: const SelectableText(
|
||||
'Duplicate Space',
|
||||
style: TextStyle(
|
||||
fontSize: 30,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: ColorsManager.blackColor,
|
||||
),
|
||||
),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
spacing: 16,
|
||||
children: [
|
||||
const SelectableText('Enter a new name for the duplicated space:'),
|
||||
@ -58,13 +72,11 @@ class _DuplicateSpaceDialogFormState extends State<DuplicateSpaceDialogForm> {
|
||||
],
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: Navigator.of(context).pop,
|
||||
child: const Text('Cancel'),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: _isNameValid ? () => _submit(context) : null,
|
||||
child: const Text('Duplicate'),
|
||||
SpaceDetailsActionButtons(
|
||||
spacerFlex: 2,
|
||||
onSave: _isNameValid ? () => _submit(context) : null,
|
||||
onCancel: Navigator.of(context).pop,
|
||||
saveButtonLabel: 'Duplicate',
|
||||
),
|
||||
],
|
||||
);
|
||||
|
@ -24,9 +24,10 @@ class DuplicateSpaceTextField extends StatelessWidget {
|
||||
color: ColorsManager.blackColor,
|
||||
),
|
||||
decoration: InputDecoration(
|
||||
label: const Text('Space Name'),
|
||||
border: _border(),
|
||||
enabledBorder: _border(),
|
||||
filled: true,
|
||||
fillColor: ColorsManager.boxColor,
|
||||
border: _border(ColorsManager.transparentColor),
|
||||
enabledBorder: _border(ColorsManager.transparentColor),
|
||||
focusedBorder: _border(ColorsManager.primaryColor),
|
||||
errorBorder: _border(context.theme.colorScheme.error),
|
||||
focusedErrorBorder: _border(context.theme.colorScheme.error),
|
||||
@ -41,7 +42,7 @@ class DuplicateSpaceTextField extends StatelessWidget {
|
||||
|
||||
OutlineInputBorder _border([Color? color]) {
|
||||
return OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
borderSide: BorderSide(
|
||||
color: color ?? ColorsManager.blackColor,
|
||||
width: 0.5,
|
||||
|
Reference in New Issue
Block a user