diff --git a/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_details_action_buttons.dart b/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_details_action_buttons.dart index 4d462091..c86ec8f7 100644 --- a/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_details_action_buttons.dart +++ b/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_details_action_buttons.dart @@ -34,7 +34,7 @@ class SpaceDetailsActionButtons extends StatelessWidget { Widget _buildCancelButton(BuildContext context) { return ElevatedButton( - onPressed: onSave, + onPressed: onCancel, style: ElevatedButton.styleFrom( elevation: 4, backgroundColor: ColorsManager.boxColor, diff --git a/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_box.dart b/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_box.dart index 7312b844..58e3ce16 100644 --- a/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_box.dart +++ b/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_box.dart @@ -65,10 +65,16 @@ class SpaceSubSpacesBox extends StatelessWidget { barrierDismissible: false, builder: (_) => SpaceSubSpacesDialog( subspaces: subspaces, - onSave: (subspaces) { + onSave: (subspaces, productAllocationsToBeAssignedToMainSpace) { context.read().add( UpdateSpaceDetailsSubspaces(subspaces), ); + + context.read().add( + UpdateSpaceDetailsProductAllocations( + productAllocationsToBeAssignedToMainSpace, + ), + ); }, ), ); diff --git a/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_dialog.dart b/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_dialog.dart index 34d16465..924a96e6 100644 --- a/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_dialog.dart +++ b/lib/pages/space_management_v2/modules/space_details/presentation/widgets/space_sub_spaces_dialog.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:syncrow_web/pages/space_management_v2/modules/space_details/domain/models/product_allocation.dart'; import 'package:syncrow_web/pages/space_management_v2/modules/space_details/domain/models/subspace.dart'; import 'package:syncrow_web/pages/space_management_v2/modules/space_details/presentation/widgets/space_details_action_buttons.dart'; import 'package:syncrow_web/pages/space_management_v2/modules/space_details/presentation/widgets/sub_spaces_input.dart'; @@ -14,7 +15,10 @@ class SpaceSubSpacesDialog extends StatefulWidget { }); final List subspaces; - final void Function(List subspaces) onSave; + final void Function( + List subspaces, + List productAllocations, + ) onSave; @override State createState() => _SpaceSubSpacesDialogState(); @@ -23,6 +27,7 @@ class SpaceSubSpacesDialog extends StatefulWidget { class _SpaceSubSpacesDialogState extends State { late final TextEditingController _subspaceNameController; late List _subspaces; + final _productAllocationsToBeAssignedToMainSpace = []; bool get _hasDuplicateNames => _subspaces.map((subspace) => subspace.name.toLowerCase()).toSet().length != @@ -54,16 +59,22 @@ class _SpaceSubSpacesDialogState extends State { }); } - void _handleSubspaceDeleted(String uuid) => setState( - () => _subspaces = _subspaces.where((s) => s.uuid != uuid).toList(), + void _handleSubspaceDeleted(String uuid) { + setState(() { + final subspaceToDelete = _subspaces.firstWhere((s) => s.uuid == uuid); + _productAllocationsToBeAssignedToMainSpace.addAll( + subspaceToDelete.productAllocations, ); + _subspaces = _subspaces.where((s) => s.uuid != uuid).toList(); + }); + } void _handleSave() { final name = _subspaceNameController.text.trim(); if (name.isNotEmpty) { _handleSubspaceAdded(name); } - widget.onSave(_subspaces); + widget.onSave(_subspaces, _productAllocationsToBeAssignedToMainSpace); Navigator.of(context).pop(); }