From 92de71ecdd76be241d2d9427338e0bb698e04504 Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 25 Nov 2023 15:13:40 +0700 Subject: [PATCH] wip fix recursive --- app/srv/ws/sync/editor/load-page.ts | 20 ++++++++++++++----- .../src/nova/ed/panel/tree/node/item/name.tsx | 4 +++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/srv/ws/sync/editor/load-page.ts b/app/srv/ws/sync/editor/load-page.ts index 56d9eadd..1c9440a0 100644 --- a/app/srv/ws/sync/editor/load-page.ts +++ b/app/srv/ws/sync/editor/load-page.ts @@ -84,7 +84,10 @@ export const serverWalkMap = ( parent_ids: string[]; parent_item: EdMeta["parent_item"]; is_prop?: boolean; - parent_mcomp?: EdMeta["parent_mcomp"] & { id: string }; + parent_mcomp?: EdMeta["parent_mcomp"] & { + id: string; + parent_ids: string[]; + }; } ) => { const { mitem, parent_item, parent_mcomp } = arg; @@ -184,11 +187,12 @@ export const serverWalkMap = ( scope, mcontent(mcontent) { serverWalkMap(p, { - parent_ids: ["root", item.id], + parent_ids: [...arg.parent_ids, item.id], mitem: mcontent, parent_item: { id: item.id, mitem: mitem as MItem }, is_prop: true, parent_mcomp: { + parent_ids: ["root", item.id], id: item_comp.id, mitem: mitem as MItem, mcomp, @@ -225,12 +229,13 @@ export const serverWalkMap = ( for (const e of childs) { serverWalkMap(p, { mitem: e, - parent_ids: ["root", item.id], + parent_ids: [...arg.parent_ids, item.id], parent_item: { id: item.id, mitem: mitem as MItem, }, parent_mcomp: { + parent_ids: ["root", item.id], id: item_comp.id, mitem: mitem as MItem, mcomp, @@ -247,7 +252,7 @@ export const serverWalkMap = ( let id = item.originalId || item.id; const pcomp = p.scope_comps[arg.parent_mcomp.id]; pcomp.scope[id] = { - p: arg.parent_ids, + p: arg.parent_mcomp.parent_ids, n: item.name, s: null, }; @@ -273,7 +278,12 @@ export const serverWalkMap = ( mitem: e, is_prop: arg.is_prop, parent_item: { id: item.id, mitem: mitem as MItem }, - parent_mcomp: arg.parent_mcomp, + parent_mcomp: arg.parent_mcomp + ? { + ...arg.parent_mcomp, + parent_ids: [...(arg.parent_mcomp?.parent_ids || []), item.id], + } + : undefined, parent_ids: [...arg.parent_ids, item.id], }); } diff --git a/app/web/src/nova/ed/panel/tree/node/item/name.tsx b/app/web/src/nova/ed/panel/tree/node/item/name.tsx index 8f3d788f..6b51002f 100644 --- a/app/web/src/nova/ed/panel/tree/node/item/name.tsx +++ b/app/web/src/nova/ed/panel/tree/node/item/name.tsx @@ -25,7 +25,9 @@ export const EdTreeName = ({ const isRenaming = p.ui.tree.rename_id === item.id; return ( -
+
+
{item.id}
+ {isRenaming ? (