diff --git a/lib/pages/spaces_management/create_subspace/views/create_subspace_model_dialog.dart b/lib/pages/spaces_management/create_subspace/views/create_subspace_model_dialog.dart index 0a2a01e5..fd7b890a 100644 --- a/lib/pages/spaces_management/create_subspace/views/create_subspace_model_dialog.dart +++ b/lib/pages/spaces_management/create_subspace/views/create_subspace_model_dialog.dart @@ -8,6 +8,8 @@ import 'package:syncrow_web/pages/spaces_management/all_spaces/model/tag.dart'; import 'package:syncrow_web/pages/spaces_management/create_subspace/bloc/subspace_bloc.dart'; import 'package:syncrow_web/pages/spaces_management/create_subspace/bloc/subspace_event.dart'; import 'package:syncrow_web/pages/spaces_management/create_subspace/bloc/subspace_state.dart'; +import 'package:syncrow_web/pages/spaces_management/create_subspace_model/widgets/subspace_chip.dart'; +import 'package:syncrow_web/pages/spaces_management/space_model/models/subspace_template_model.dart'; import 'package:syncrow_web/utils/color_manager.dart'; class CreateSubSpaceDialog extends StatelessWidget { @@ -20,15 +22,14 @@ class CreateSubSpaceDialog extends StatelessWidget { final Function(List?)? onSave; const CreateSubSpaceDialog( - {Key? key, + {super.key, required this.isEdit, required this.dialogTitle, this.existingSubSpaces, required this.spaceName, required this.spaceTags, required this.products, - required this.onSave}) - : super(key: key); + required this.onSave}); @override Widget build(BuildContext context) { @@ -78,8 +79,10 @@ class CreateSubSpaceDialog extends StatelessWidget { borderRadius: BorderRadius.circular(10), ), child: Wrap( - spacing: 8.0, - runSpacing: 8.0, + spacing: 8, + runSpacing: 8, + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.center, children: [ ...state.subSpaces.asMap().entries.map( (entry) { @@ -97,44 +100,14 @@ class CreateSubSpaceDialog extends StatelessWidget { lowerName) .map((e) => e.key) .toList(); - final isDuplicate = - duplicateIndices.length > 1 && - duplicateIndices.indexOf(index) != 0; - - return Chip( - label: Text(subSpace.subspaceName, - style: Theme.of(context) - .textTheme - .bodyMedium - ?.copyWith( - color: - ColorsManager.spaceColor)), - backgroundColor: ColorsManager.whiteColors, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - side: BorderSide( - color: isDuplicate - ? ColorsManager.red - : ColorsManager.transparentColor, - width: 0, - ), - ), - deleteIcon: Container( - width: 24, - height: 24, - decoration: BoxDecoration( - shape: BoxShape.circle, - border: Border.all( - color: ColorsManager.lightGrayColor, - width: 1.5, - ), - ), - child: const Icon( - Icons.close, - size: 16, - color: ColorsManager.lightGrayColor, - ), + final isDuplicate = duplicateIndices.length > 1 && + duplicateIndices.indexOf(index) != 0; + return SubspaceChip( + subSpace: SubspaceTemplateModel( + subspaceName: entry.value.subspaceName, + disabled: entry.value.disabled, ), + isDuplicate: isDuplicate, onDeleted: () => context .read() .add(RemoveSubSpace(subSpace)), @@ -154,19 +127,18 @@ class CreateSubSpaceDialog extends StatelessWidget { .textTheme .bodySmall ?.copyWith( - color: ColorsManager - .lightGrayColor)), + color: + ColorsManager.lightGrayColor)), onSubmitted: (value) { if (value.trim().isNotEmpty) { - context.read().add( - AddSubSpace(SubspaceModel( + context.read().add(AddSubSpace( + SubspaceModel( subspaceName: value.trim(), disabled: false))); textController.clear(); } }, - style: - Theme.of(context).textTheme.bodyMedium), + style: Theme.of(context).textTheme.bodyMedium), ), ], ), @@ -175,12 +147,10 @@ class CreateSubSpaceDialog extends StatelessWidget { Padding( padding: const EdgeInsets.only(top: 8.0), child: Text(state.errorMessage, - style: Theme.of(context) - .textTheme - .bodySmall - ?.copyWith( - color: ColorsManager.warningRed, - )), + style: + Theme.of(context).textTheme.bodySmall?.copyWith( + color: ColorsManager.warningRed, + )), ), const SizedBox(height: 16), Row( diff --git a/lib/pages/spaces_management/create_subspace_model/widgets/create_subspace_model_chips_box.dart b/lib/pages/spaces_management/create_subspace_model/widgets/create_subspace_model_chips_box.dart index a18fc8d8..c6b302c0 100644 --- a/lib/pages/spaces_management/create_subspace_model/widgets/create_subspace_model_chips_box.dart +++ b/lib/pages/spaces_management/create_subspace_model/widgets/create_subspace_model_chips_box.dart @@ -1,4 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:syncrow_web/pages/spaces_management/create_subspace_model/bloc/subspace_model_bloc.dart'; +import 'package:syncrow_web/pages/spaces_management/create_subspace_model/bloc/subspace_model_event.dart'; import 'package:syncrow_web/pages/spaces_management/create_subspace_model/widgets/subspace_chip.dart'; import 'package:syncrow_web/pages/spaces_management/create_subspace_model/widgets/subspaces_textfield.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/subspace_template_model.dart'; @@ -51,6 +54,9 @@ class CreateSubspaceModelChipsBox extends StatelessWidget { return SubspaceChip( subSpace: subSpace, isDuplicate: isDuplicate, + onDeleted: () => context.read().add( + RemoveSubSpaceModel(subSpace), + ), ); }, ), diff --git a/lib/pages/spaces_management/create_subspace_model/widgets/subspace_chip.dart b/lib/pages/spaces_management/create_subspace_model/widgets/subspace_chip.dart index b54e0712..098b4804 100644 --- a/lib/pages/spaces_management/create_subspace_model/widgets/subspace_chip.dart +++ b/lib/pages/spaces_management/create_subspace_model/widgets/subspace_chip.dart @@ -1,7 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:syncrow_web/pages/spaces_management/create_subspace_model/bloc/subspace_model_bloc.dart'; -import 'package:syncrow_web/pages/spaces_management/create_subspace_model/bloc/subspace_model_event.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/subspace_template_model.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/extension/build_context_x.dart'; @@ -11,10 +8,12 @@ class SubspaceChip extends StatelessWidget { required this.subSpace, required this.isDuplicate, super.key, + required this.onDeleted, }); final SubspaceTemplateModel subSpace; final bool isDuplicate; + final void Function() onDeleted; @override Widget build(BuildContext context) { @@ -50,9 +49,7 @@ class SubspaceChip extends StatelessWidget { ), ), ), - onDeleted: () => context.read().add( - RemoveSubSpaceModel(subSpace), - ), + onDeleted: onDeleted, ); } }