Add try catch to behaviors
This commit is contained in:
parent
5fdee602f1
commit
5fdbd771ff
3 changed files with 24 additions and 20 deletions
|
@ -13,26 +13,31 @@ import { ApplySymbol } from './SymbolBehaviors';
|
||||||
* @returns Updated container
|
* @returns Updated container
|
||||||
*/
|
*/
|
||||||
export function ApplyBehaviors(container: IContainerModel, symbols: Map<string, ISymbolModel>): IContainerModel {
|
export function ApplyBehaviors(container: IContainerModel, symbols: Map<string, ISymbolModel>): IContainerModel {
|
||||||
if (container.properties.isAnchor) {
|
try {
|
||||||
ApplyAnchor(container);
|
if (container.properties.isAnchor) {
|
||||||
}
|
ApplyAnchor(container);
|
||||||
|
|
||||||
Flex(container);
|
|
||||||
|
|
||||||
ApplyRigidBody(container);
|
|
||||||
|
|
||||||
const symbol = symbols.get(container.properties.linkedSymbolId);
|
|
||||||
if (container.properties.linkedSymbolId !== '' && symbol !== undefined) {
|
|
||||||
ApplySymbol(container, symbol);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (APPLY_BEHAVIORS_ON_CHILDREN) {
|
|
||||||
// Apply DFS by recursion
|
|
||||||
for (const child of container.children) {
|
|
||||||
ApplyBehaviors(child, symbols);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Flex(container);
|
||||||
|
|
||||||
|
ApplyRigidBody(container);
|
||||||
|
|
||||||
|
const symbol = symbols.get(container.properties.linkedSymbolId);
|
||||||
|
if (container.properties.linkedSymbolId !== '' && symbol !== undefined) {
|
||||||
|
ApplySymbol(container, symbol);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (APPLY_BEHAVIORS_ON_CHILDREN) {
|
||||||
|
// Apply DFS by recursion
|
||||||
|
for (const child of container.children) {
|
||||||
|
ApplyBehaviors(child, symbols);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.warn(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,7 @@ function FlexGroup(flexibleGroup: IFlexibleGroup): void {
|
||||||
// title: 'Cannot fit!',
|
// title: 'Cannot fit!',
|
||||||
// text: 'Cannot fit at all even when squeezing all flex containers to the minimum.'
|
// text: 'Cannot fit at all even when squeezing all flex containers to the minimum.'
|
||||||
// });
|
// });
|
||||||
console.error('[FlexBehavior] Cannot fit at all even when squeezing all flex containers to the minimum.');
|
throw new Error('[FlexBehavior] Cannot fit at all even when squeezing all flex containers to the minimum.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const maxMinWidths = Math.max(...minWidths);
|
const maxMinWidths = Math.max(...minWidths);
|
||||||
|
|
|
@ -183,7 +183,7 @@ function ApplyMainLoop(oldMatrix: number[][], rowlength: number): number[][] {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tries === 0) {
|
if (tries === 0) {
|
||||||
throw new Error('[Flex]Simplexe: Could not find a solution');
|
throw new Error('[Flex] Simplexe: Could not find a solution');
|
||||||
}
|
}
|
||||||
|
|
||||||
return matrix;
|
return matrix;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue