Refactor behaviors into a single function #35

Merged
Siklos merged 2 commits from dev.recalculatePosition into dev 2022-08-18 06:11:41 -04:00
2 changed files with 25 additions and 12 deletions
Showing only changes of commit e831f95d20 - Show all commits

View file

@ -0,0 +1,21 @@
import { IContainerModel } from '../../../Interfaces/IContainerModel';
import { ImposePosition } from './AnchorBehaviors';
import { RecalculatePhysics } from './RigidBodyBehaviors';
/**
* Recalculate the position of the container and its neighbors
* Mutate and returns the updated container
* @param container Container to recalculate its positions
* @returns Updated container
*/
export function applyBehaviors(container: IContainerModel): IContainerModel {
if (container.properties.isAnchor) {
ImposePosition(container);
}
if (container.properties.isRigidBody) {
RecalculatePhysics(container);
}
return container;
}

View file

@ -3,9 +3,8 @@ import { IContainerModel, ContainerModel } from '../../Interfaces/IContainerMode
import { IHistoryState } from '../../Interfaces/IHistoryState';
import { findContainerById } from '../../utils/itertools';
import { getCurrentHistory } from './Editor';
import { RecalculatePhysics } from './Behaviors/RigidBodyBehaviors';
import { ImposePosition } from './Behaviors/AnchorBehaviors';
import { restoreX } from '../SVG/Elements/Container';
import { applyBehaviors } from './Behaviors/Behaviors';
/**
* Handled the property change event in the properties form
@ -43,13 +42,7 @@ export function OnPropertyChange(
(container.properties as any)[key] = value;
}
if (container.properties.isAnchor) {
ImposePosition(container);
}
if (container.properties.isRigidBody) {
RecalculatePhysics(container);
}
applyBehaviors(container);
history.push({
LastAction: `Change ${key} of ${container.properties.id}`,
@ -116,9 +109,8 @@ export function OnPropertiesSubmit(
submitCSSForm(form, styleProperty, container);
}
if (container.properties.isRigidBody) {
RecalculatePhysics(container);
}
// Apply the behaviors
applyBehaviors(container);
history.push({
LastAction: `Change properties of ${container.properties.id}`,