From b44c6fb4777fb13d5bb76f22f0766ae6957fdd5f Mon Sep 17 00:00:00 2001 From: Eric NGUYEN Date: Tue, 18 Oct 2022 16:22:44 +0200 Subject: [PATCH] Refactor and fix potential bug in InitializeChildrenWithPattern when pattern is not found in the config --- src/Components/Editor/Actions/AddContainer.ts | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/Components/Editor/Actions/AddContainer.ts b/src/Components/Editor/Actions/AddContainer.ts index 227b73a..06100ea 100644 --- a/src/Components/Editor/Actions/AddContainer.ts +++ b/src/Components/Editor/Actions/AddContainer.ts @@ -301,26 +301,14 @@ function InitializeChildrenWithPattern( const configs: Map = new Map(configuration.AvailableContainers.map(config => [config.Type, config])); const patterns: Map = new Map(configuration.Patterns.map(pattern => [pattern.id, pattern])); const containerOrPattern = GetPattern(patternId, configs, patterns); - const pattern = containerOrPattern as IPattern | IAvailableContainer; - if (!('children' in pattern)) { - // containerOrPattern is not a pattern but a container - const container = containerOrPattern as IAvailableContainer; - // Add Container - AddNewContainerToParent( - container, - configuration, - containers, - newContainer, - 0, 0, - newCounters, - symbols - ); + if (containerOrPattern === undefined) { + console.warn(`[InitializeChildrenWithPattern] PatternId ${patternId} was neither found as Pattern nor as IAvailableContainer`); return; } // BFS over patterns - BuildPatterns(pattern, newContainer, configuration, containers, newCounters, symbols, configs, patterns); + BuildPatterns(containerOrPattern, newContainer, configuration, containers, newCounters, symbols, configs, patterns); } /** @@ -337,7 +325,7 @@ function InitializeChildrenWithPattern( * @param patterns */ function BuildPatterns( - rootPattern: IPattern, + rootPattern: ContainerOrPattern, newContainer: ContainerModel, configuration: IConfiguration, containers: Map,