From dd28308c3cf1877ba3f19dcd2bd20bf1c7896a99 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 24 Feb 2023 19:52:06 +0100 Subject: [PATCH] fix(app): fix all nested behavior --- .../apps/components/layout/AppTabs.svelte | 1 - .../apps/editor/SettingsPanel.svelte | 3 +-- .../lib/components/apps/editor/appUtils.ts | 27 ++++++++++--------- .../InlineScriptsPanel.svelte | 27 ++++++++++++++++++- .../settingsPanel/ComponentPanel.svelte | 2 +- .../apps/editor/settingsPanel/GridTab.svelte | 13 ++++++--- 6 files changed, 53 insertions(+), 20 deletions(-) diff --git a/frontend/src/lib/components/apps/components/layout/AppTabs.svelte b/frontend/src/lib/components/apps/components/layout/AppTabs.svelte index 8824e89469..bbd9f71148 100644 --- a/frontend/src/lib/components/apps/components/layout/AppTabs.svelte +++ b/frontend/src/lib/components/apps/components/layout/AppTabs.svelte @@ -9,7 +9,6 @@ export let id: string export let configuration: Record - export let subGrids: GridItem[][] | undefined = undefined export let componentContainerHeight: number export let tabs: string[] diff --git a/frontend/src/lib/components/apps/editor/SettingsPanel.svelte b/frontend/src/lib/components/apps/editor/SettingsPanel.svelte index 0c4785e17e..2be73682a4 100644 --- a/frontend/src/lib/components/apps/editor/SettingsPanel.svelte +++ b/frontend/src/lib/components/apps/editor/SettingsPanel.svelte @@ -8,7 +8,6 @@ import TablePanel from './TablePanel.svelte' const { selectedComponent, app } = getContext('AppEditorContext') - $: subgridKeys = Object.keys($app.subgrids ?? {}) {#each $app.grid as gridItem (gridItem.data.id)} @@ -20,7 +19,7 @@ {/each} {#if $app.subgrids} - {#each subgridKeys as key (key)} + {#each Object.keys($app.subgrids ?? {}) as key (key)} {#each $app.subgrids[key] as gridItem (gridItem.data.id)} {#if gridItem.data.id === $selectedComponent} diff --git a/frontend/src/lib/components/apps/editor/appUtils.ts b/frontend/src/lib/components/apps/editor/appUtils.ts index 97e5cd46cf..763dd96df6 100644 --- a/frontend/src/lib/components/apps/editor/appUtils.ts +++ b/frontend/src/lib/components/apps/editor/appUtils.ts @@ -92,25 +92,26 @@ export function insertNewGridItem( ) { const id = getNextGridItemId(app) + if (!app.subgrids) { + app.subgrids = {} + } + if (!focusedGrid) { const newItem = createNewGridItem(app.grid, id, data) app.grid.push(newItem) } else { const { parentComponentId, subGridIndex } = focusedGrid - if (!app.subgrids) { - app.subgrids = {} - } - - const subGrid = app.subgrids[`${parentComponentId}-${subGridIndex}`] ?? [] - const newItem = createNewGridItem(subGrid, id, data) const key = `${parentComponentId}-${subGridIndex ?? 0}` - if (!app.subgrids[key]) { - app.subgrids[key] = [newItem] - } else { - app.subgrids[key].push(newItem) - } + const subGrid = app.subgrids[key] ?? [] + subGrid.push(createNewGridItem(subGrid, id, data)) + app.subgrids[key] = subGrid + + + } + for (let i = 0; i < (data.numberOfSubgrids ?? 0); i++) { + app.subgrids[`${id}-${i}`] = [] } return id @@ -124,8 +125,10 @@ export function getAllSubgridsAndComponentIds( let components: string[] = [component.id] if (app.subgrids && component.numberOfSubgrids) { for (let i = 0; i < component.numberOfSubgrids; i++) { - const subgrid = app.subgrids[`${component.id}-${i}`] + const key = `${component.id}-${i}` + const subgrid = app.subgrids[key] if (subgrid) { + subgrids.push(key) for (const item of subgrid) { let [recSubgrids, recComponents] = getAllSubgridsAndComponentIds(app, item.data) subgrids.push(...recSubgrids) diff --git a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte index 737f2bb6e9..2cbdf0fcb6 100644 --- a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +++ b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte @@ -25,7 +25,7 @@ Select a script on the left panel {/if} - {#each allItems($app.grid, $app.subgrids) as gridItem (gridItem.data.id)} + {#each $app.grid as gridItem (gridItem.data.id)} {#if gridItem.data.id === selectedScriptComponentId} + {/if} + + {#if gridItem.data.type === 'tablecomponent'} + {#each gridItem.data.actionButtons as actionButton, index (index)} + {#if actionButton.id === selectedScriptComponentId} + + {/if} + {/each} + {/if} + {/each} + {/each} + {/if} + {#each $app.unusedInlineScripts as unusedInlineScript, index (index)} {#if `unused-${index}` === selectedScriptComponentId}