Select the container above after delete
This commit is contained in:
parent
c930fd5cd2
commit
2ac6e95a13
1 changed files with 18 additions and 8 deletions
|
@ -6,6 +6,7 @@ import { findContainerById } from '../../utils/itertools';
|
||||||
import { getCurrentHistory } from './Editor';
|
import { getCurrentHistory } from './Editor';
|
||||||
import { SizePointer } from '../../Interfaces/SizePointer';
|
import { SizePointer } from '../../Interfaces/SizePointer';
|
||||||
import Properties from '../../Interfaces/Properties';
|
import Properties from '../../Interfaces/Properties';
|
||||||
|
import { MinusCircleIcon } from '@heroicons/react/outline';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Select a container
|
* 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}`);
|
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
|
// TODO: Implement alert
|
||||||
throw new Error('[DeleteContainer] Tried to delete the main container! Deleting the main container is not allowed!');
|
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!');
|
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);
|
||||||
const index = container.parent.children.indexOf(container);
|
if (index > -1) {
|
||||||
if (index > -1) {
|
container.parent.children.splice(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([{
|
setHistory(history.concat([{
|
||||||
LastAction: `Delete container ${containerId}`,
|
LastAction: `Delete container ${containerId}`,
|
||||||
MainContainer: mainContainerClone,
|
MainContainer: mainContainerClone,
|
||||||
SelectedContainer: null,
|
SelectedContainer,
|
||||||
SelectedContainerId: '',
|
SelectedContainerId,
|
||||||
TypeCounters: Object.assign({}, current.TypeCounters)
|
TypeCounters: Object.assign({}, current.TypeCounters)
|
||||||
}]));
|
}]));
|
||||||
setHistoryCurrentStep(history.length);
|
setHistoryCurrentStep(history.length);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue