diff --git a/src/Components/Editor/ContainerOperations.ts b/src/Components/Editor/ContainerOperations.ts index 465f63d..e59ab70 100644 --- a/src/Components/Editor/ContainerOperations.ts +++ b/src/Components/Editor/ContainerOperations.ts @@ -6,6 +6,7 @@ import { findContainerById } from '../../utils/itertools'; import { getCurrentHistory } from './Editor'; import { SizePointer } from '../../Interfaces/SizePointer'; import Properties from '../../Interfaces/Properties'; +import { MinusCircleIcon } from '@heroicons/react/outline'; /** * Select a container @@ -55,7 +56,9 @@ export function DeleteContainer( throw new Error(`[DeleteContainer] Tried to delete a container that is not present in the main container: ${containerId}`); } - if (container === mainContainerClone) { + if (container === mainContainerClone || + container.parent === undefined || + container.parent === null) { // TODO: Implement alert throw new Error('[DeleteContainer] Tried to delete the main container! Deleting the main container is not allowed!'); } @@ -64,18 +67,25 @@ export function DeleteContainer( throw new Error('[DeleteContainer] Container model was not found among children of the main container!'); } - if (container.parent != null) { - const index = container.parent.children.indexOf(container); - if (index > -1) { - container.parent.children.splice(index, 1); - } + const index = container.parent.children.indexOf(container); + if (index > -1) { + container.parent.children.splice(index, 1); + } else { + throw new Error('[DeleteContainer] Could not find container among parent\'s children'); } + // Select the previous container + // or select the one above + const SelectedContainer = findContainerById(mainContainerClone, current.SelectedContainerId) ?? + container.parent.children.at(index - 1) ?? + container.parent; + const SelectedContainerId = SelectedContainer.properties.id; + setHistory(history.concat([{ LastAction: `Delete container ${containerId}`, MainContainer: mainContainerClone, - SelectedContainer: null, - SelectedContainerId: '', + SelectedContainer, + SelectedContainerId, TypeCounters: Object.assign({}, current.TypeCounters) }])); setHistoryCurrentStep(history.length);