From a05d3af1a3c0fc57b4c866d54e551ab4f02befcf Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 27 Jan 2024 21:44:58 +0700 Subject: [PATCH] wip fix --- app/srv/ws/sync/actions/code_edit.ts | 14 ++++++++++---- app/web/src/nova/vi/preview.tsx | 2 +- app/web/src/nova/vi/render/render.tsx | 19 ++++++++++++++++--- app/web/src/nova/vi/root.tsx | 1 + 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/srv/ws/sync/actions/code_edit.ts b/app/srv/ws/sync/actions/code_edit.ts index 151d2959..bc53ed56 100644 --- a/app/srv/ws/sync/actions/code_edit.ts +++ b/app/srv/ws/sync/actions/code_edit.ts @@ -9,8 +9,14 @@ import { docs } from "../entity/docs"; import { gunzipAsync } from "../entity/zlib"; import { SyncConnection } from "../type"; import { parseJs } from "../editor/parser/parse-js"; +import { snapshot } from "../entity/snapshot"; const decoder = new TextDecoder(); +const timeout = { + page: {} as Record, + comp: {} as Record, +}; + export const code_edit: SAction["code"]["edit"] = async function ( this: SyncConnection, arg @@ -84,14 +90,14 @@ export const code_edit: SAction["code"]["edit"] = async function ( }); if (save_to === "comp" && comp_id) { - await db.component.update({ + db.component.update({ where: { id: comp_id }, data: { content_tree: root.toJSON(), }, }); } else if (page_id) { - await db.page.update({ + db.page.update({ where: { id: page_id }, data: { content_tree: root.toJSON(), @@ -121,14 +127,14 @@ export const code_edit: SAction["code"]["edit"] = async function ( }); if (save_to === "comp" && comp_id) { - await db.component.update({ + db.component.update({ where: { id: comp_id }, data: { content_tree: root.toJSON(), }, }); } else if (page_id) { - await db.page.update({ + db.page.update({ where: { id: page_id }, data: { content_tree: root.toJSON(), diff --git a/app/web/src/nova/vi/preview.tsx b/app/web/src/nova/vi/preview.tsx index 4fb52778..844f6311 100644 --- a/app/web/src/nova/vi/preview.tsx +++ b/app/web/src/nova/vi/preview.tsx @@ -216,7 +216,7 @@ const viRoute = async (p: PG) => { p.script.init_local_effect = {}; - if (!w.isEditor) { + if (!w.isEditor && p.page.cur.id !== params.page_id) { let page_cache = p.preview.meta_cache[params.page_id]; let should_render = false; diff --git a/app/web/src/nova/vi/render/render.tsx b/app/web/src/nova/vi/render/render.tsx index 18d8c24b..1ed418bf 100644 --- a/app/web/src/nova/vi/render/render.tsx +++ b/app/web/src/nova/vi/render/render.tsx @@ -86,9 +86,22 @@ export const ViChild: FC<{ const childs: ReactNode[] = []; for (const item_id of vi.entry) { const meta = vi.meta[item_id]; - const parts = viParts(vi, meta, false, passprop); - if (vi.visit) vi.visit(meta, parts); - childs.push(
); + + if (meta.item.adv?.js || meta.item.component?.id) { + childs.push( + + + + ); + } else { + const parts = viParts(vi, meta, false, passprop); + if (vi.visit) vi.visit(meta, parts); + childs.push(
); + } } return ( <> diff --git a/app/web/src/nova/vi/root.tsx b/app/web/src/nova/vi/root.tsx index b8e844d6..fe771d0d 100644 --- a/app/web/src/nova/vi/root.tsx +++ b/app/web/src/nova/vi/root.tsx @@ -25,6 +25,7 @@ export const ViRoot: FC<{}> = ({}) => { entry = vi.layout?.entry; } + return (
{entry.map((id) => {