Compare commits

...

3 commits

Author SHA1 Message Date
Eric NGUYEN
f0c1803e10 test-server: Set minWidth
All checks were successful
continuous-integration/drone/push Build is passing
2022-08-17 16:53:09 +02:00
Eric NGUYEN
4bf4f01dc2 Implemented logic for minWidth and rigidBody 2022-08-17 16:52:36 +02:00
Eric NGUYEN
83d4990bba Remove useless import 2022-08-17 16:35:05 +02:00
3 changed files with 17 additions and 9 deletions

View file

@ -152,7 +152,7 @@ export function constraintBodyInsideUnallocatedWidth(
// Check if the container actually fit inside
// It will usually fit if it was alrady fitting
const availableWidthFound = availableWidths.find((width) =>
isFitting(container, width)
isFitting(container.properties.width, width)
);
if (availableWidthFound === undefined) {
@ -163,12 +163,21 @@ export function constraintBodyInsideUnallocatedWidth(
// We want the container to fit automatically inside the available space
// even if it means to resize the container
// The end goal is that the code never show the error message no matter what action is done
// TODO: Actually give an option to not fit and show the error message shown below
const availableWidth = availableWidths[0];
const availableWidth: ISizePointer | undefined = availableWidths.find((width) => {
if (container.properties.minWidth === undefined) {
return true;
}
return isFitting(container.properties.minWidth, width);
});
if (availableWidth === undefined) {
console.warn(`Container ${container.properties.id} cannot fit in any space due to its minimum width being to large. Consequently, its rigid body property is disabled.`);
container.properties.isRigidBody = false;
return container;
}
container.properties.x = availableWidth.x;
container.properties.width = availableWidth.width;
// throw new Error('[constraintBodyInsideUnallocatedWidth] BIGERR: No available space found on the parent container, even though there is some.');
return container;
}
@ -188,9 +197,9 @@ export function constraintBodyInsideUnallocatedWidth(
* @returns
*/
const isFitting = (
container: IContainerModel,
containerWidth: number,
sizePointer: ISizePointer
): boolean => container.properties.width <= sizePointer.width;
): boolean => containerWidth <= sizePointer.width;
/**
* Get the unallocated widths inside a container

View file

@ -4,10 +4,8 @@ import { IConfiguration } from '../../Interfaces/IConfiguration';
import { ContainerModel, IContainerModel } from '../../Interfaces/IContainerModel';
import { findContainerById } from '../../utils/itertools';
import { getCurrentHistory } from './Editor';
import IProperties from '../../Interfaces/IProperties';
import { AddMethod } from '../../Enums/AddMethod';
import { IAvailableContainer } from '../../Interfaces/IAvailableContainer';
import { XPositionReference } from '../../Enums/XPositionReference';
import { GetDefaultContainerProps } from '../../utils/default';
/**

View file

@ -54,6 +54,7 @@ const GetSVGLayoutConfiguration = () => {
{
Type: 'Chassis',
Width: 500,
MinWidth: 200,
Style: {
fillOpacity: 1,
strokeWidth: 2,