From 619b24404694a4588f7e31162de5141e82d6a52c Mon Sep 17 00:00:00 2001 From: Rizky Date: Sun, 19 Nov 2023 13:14:27 +0700 Subject: [PATCH] wip checkpoint view --- app/srv/ws/sync/actions.ts | 2 +- app/srv/ws/sync/actions/site_load.ts | 2 +- app/web/src/base/page/all.tsx | 4 +- app/web/src/base/page/ed.tsx | 6 +-- app/web/src/{render => nova}/ed/ed-base.tsx | 0 app/web/src/{render => nova}/ed/ed-left.tsx | 0 app/web/src/{render => nova}/ed/ed-right.tsx | 0 .../{render => nova}/ed/logic/ed-global.ts | 9 +++-- .../src/{render => nova}/ed/logic/ed-init.ts | 0 .../src/{render => nova}/ed/logic/ed-route.ts | 1 - .../src/{render => nova}/ed/logic/ed-sync.tsx | 0 .../src/{render => nova}/ed/logic/ed-undo.ts | 0 .../{render => nova}/ed/logic/tree/build.tsx | 9 ++++- .../ed/panel/activity/user-conn.tsx | 0 .../ed/panel/header/left/api.tsx | 0 .../ed/panel/header/left/export.tsx | 0 .../ed/panel/header/left/js.tsx | 0 .../ed/panel/header/left/npm.tsx | 0 .../ed/panel/header/left/site.tsx | 0 .../ed/panel/header/top-btn.tsx | 0 app/web/src/nova/ed/panel/main/main.tsx | 22 +++++++++++ .../ed/panel/main/pane-resize.tsx | 0 .../ed/panel/popup/api/api-db.tsx | 0 .../ed/panel/popup/api/api-deploy.tsx | 0 .../ed/panel/popup/api/api-domain.tsx | 0 .../ed/panel/popup/api/api-server.tsx | 0 .../ed/panel/popup/api/api-utils.ts | 0 .../ed/panel/popup/code/assign.tsx | 0 .../ed/panel/popup/code/code.tsx | 0 .../ed/panel/popup/code/icons.tsx | 0 .../ed/panel/popup/code/name-list.tsx | 0 .../ed/panel/popup/comp/comp-group.tsx | 0 .../ed/panel/popup/npm/npm-algolia.tsx | 0 .../ed/panel/popup/npm/npm-import.tsx | 0 .../ed/panel/popup/npm/npm-items.tsx | 0 .../ed/panel/popup/npm/npm-popup.tsx | 0 .../ed/panel/popup/site/site-form.tsx | 0 .../ed/panel/popup/site/site-head.tsx | 0 .../ed/panel/popup/site/site-tree.tsx | 0 .../ed/panel/popup/site/site-user.tsx | 0 .../ed/panel/popup/site/site.tsx | 0 .../ed/panel/script/monaco/init.tsx | 0 .../ed/panel/script/monaco/monaco.tsx | 0 .../{render => nova}/ed/panel/tree/body.tsx | 0 .../ed/panel/tree/node/item/action.tsx | 0 .../ed/panel/tree/node/item/action/attach.tsx | 0 .../ed/panel/tree/node/item/action/clone.tsx | 2 +- .../ed/panel/tree/node/item/action/copy.tsx | 0 .../ed/panel/tree/node/item/action/cut.tsx | 0 .../ed/panel/tree/node/item/action/del.tsx | 0 .../ed/panel/tree/node/item/action/detach.tsx | 2 +- .../ed/panel/tree/node/item/action/hide.tsx | 0 .../panel/tree/node/item/action/new-comp.tsx | 0 .../ed/panel/tree/node/item/action/paste.tsx | 2 +- .../ed/panel/tree/node/item/action/rename.tsx | 0 .../ed/panel/tree/node/item/action/unwrap.tsx | 0 .../ed/panel/tree/node/item/action/wrap.tsx | 0 .../ed/panel/tree/node/item/ctx-menu.tsx | 0 .../ed/panel/tree/node/item/indent-hook.ts | 0 .../ed/panel/tree/node/item/indent.tsx | 0 .../ed/panel/tree/node/item/name.tsx | 0 .../ed/panel/tree/node/on-drop.tsx | 0 .../ed/panel/tree/node/render.tsx | 0 .../{render => nova}/ed/panel/tree/search.tsx | 0 app/web/src/nova/view/logic/global.ts | 9 +++++ app/web/src/nova/view/logic/init.ts | 12 ++++++ app/web/src/nova/view/logic/types.ts | 10 +++++ app/web/src/nova/view/render/section.tsx | 10 +++++ app/web/src/nova/view/view.tsx | 37 +++++++++++++++++++ app/web/src/render/ed/panel/main/main.tsx | 3 -- .../src/render/editor/panel/e-main-editor.tsx | 2 +- app/web/src/utils/sync/ws-client.ts | 2 +- 72 files changed, 124 insertions(+), 22 deletions(-) rename app/web/src/{render => nova}/ed/ed-base.tsx (100%) rename app/web/src/{render => nova}/ed/ed-left.tsx (100%) rename app/web/src/{render => nova}/ed/ed-right.tsx (100%) rename app/web/src/{render => nova}/ed/logic/ed-global.ts (98%) rename app/web/src/{render => nova}/ed/logic/ed-init.ts (100%) rename app/web/src/{render => nova}/ed/logic/ed-route.ts (97%) rename app/web/src/{render => nova}/ed/logic/ed-sync.tsx (100%) rename app/web/src/{render => nova}/ed/logic/ed-undo.ts (100%) rename app/web/src/{render => nova}/ed/logic/tree/build.tsx (98%) rename app/web/src/{render => nova}/ed/panel/activity/user-conn.tsx (100%) rename app/web/src/{render => nova}/ed/panel/header/left/api.tsx (100%) rename app/web/src/{render => nova}/ed/panel/header/left/export.tsx (100%) rename app/web/src/{render => nova}/ed/panel/header/left/js.tsx (100%) rename app/web/src/{render => nova}/ed/panel/header/left/npm.tsx (100%) rename app/web/src/{render => nova}/ed/panel/header/left/site.tsx (100%) rename app/web/src/{render => nova}/ed/panel/header/top-btn.tsx (100%) create mode 100644 app/web/src/nova/ed/panel/main/main.tsx rename app/web/src/{render => nova}/ed/panel/main/pane-resize.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/api/api-db.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/api/api-deploy.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/api/api-domain.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/api/api-server.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/api/api-utils.ts (100%) rename app/web/src/{render => nova}/ed/panel/popup/code/assign.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/code/code.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/code/icons.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/code/name-list.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/comp/comp-group.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/npm/npm-algolia.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/npm/npm-import.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/npm/npm-items.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/npm/npm-popup.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/site/site-form.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/site/site-head.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/site/site-tree.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/site/site-user.tsx (100%) rename app/web/src/{render => nova}/ed/panel/popup/site/site.tsx (100%) rename app/web/src/{render => nova}/ed/panel/script/monaco/init.tsx (100%) rename app/web/src/{render => nova}/ed/panel/script/monaco/monaco.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/body.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/attach.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/clone.tsx (91%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/copy.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/cut.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/del.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/detach.tsx (93%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/hide.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/new-comp.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/paste.tsx (94%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/rename.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/unwrap.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/action/wrap.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/ctx-menu.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/indent-hook.ts (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/indent.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/item/name.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/on-drop.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/node/render.tsx (100%) rename app/web/src/{render => nova}/ed/panel/tree/search.tsx (100%) create mode 100644 app/web/src/nova/view/logic/global.ts create mode 100644 app/web/src/nova/view/logic/init.ts create mode 100644 app/web/src/nova/view/logic/types.ts create mode 100644 app/web/src/nova/view/render/section.tsx create mode 100644 app/web/src/nova/view/view.tsx delete mode 100644 app/web/src/render/ed/panel/main/main.tsx diff --git a/app/srv/ws/sync/actions.ts b/app/srv/ws/sync/actions.ts index 027eb21b..f21ce52a 100644 --- a/app/srv/ws/sync/actions.ts +++ b/app/srv/ws/sync/actions.ts @@ -3,7 +3,7 @@ import { EComp, EPage, ESite, -} from "../../../web/src/render/ed/logic/ed-global"; +} from "../../../web/src/nova/ed/logic/ed-global"; import { IItem } from "../../../web/src/utils/types/item"; import { site_group } from "./actions/site_group"; import { activity } from "./entity/activity"; diff --git a/app/srv/ws/sync/actions/site_load.ts b/app/srv/ws/sync/actions/site_load.ts index 5a117b8b..91b199d7 100644 --- a/app/srv/ws/sync/actions/site_load.ts +++ b/app/srv/ws/sync/actions/site_load.ts @@ -1,5 +1,5 @@ import { validate } from "uuid"; -import { ESite } from "../../../../web/src/render/ed/logic/ed-global"; +import { ESite } from "../../../../web/src/nova/ed/logic/ed-global"; import { SAction } from "../actions"; import { SyncConnection } from "../type"; import { activity } from "../entity/activity"; diff --git a/app/web/src/base/page/all.tsx b/app/web/src/base/page/all.tsx index 1e30a21f..edd9dcbc 100644 --- a/app/web/src/base/page/all.tsx +++ b/app/web/src/base/page/all.tsx @@ -1,7 +1,7 @@ import { useEffect } from "react"; import { page, useGlobal } from "web-utils"; -import { EDGlobal } from "../../render/ed/logic/ed-global"; -import { edInitSync } from "../../render/ed/logic/ed-sync"; +import { EDGlobal } from "../../nova/ed/logic/ed-global"; +import { edInitSync } from "../../nova/ed/logic/ed-sync"; import { Loading } from "../../utils/ui/loading"; import { isLocalhost } from "../../utils/ui/is-localhost"; diff --git a/app/web/src/base/page/ed.tsx b/app/web/src/base/page/ed.tsx index 085af4e7..951bdea9 100644 --- a/app/web/src/base/page/ed.tsx +++ b/app/web/src/base/page/ed.tsx @@ -1,9 +1,9 @@ import { page, useGlobal } from "web-utils"; -import { EdBase } from "../../render/ed/ed-base"; -import { EDGlobal } from "../../render/ed/logic/ed-global"; +import { EdBase } from "../../nova/ed/ed-base"; +import { EDGlobal } from "../../nova/ed/logic/ed-global"; import { Loading } from "../../utils/ui/loading"; import { initSync } from "wasm-gzip"; -import { edInitSync } from "../../render/ed/logic/ed-sync"; +import { edInitSync } from "../../nova/ed/logic/ed-sync"; export default page({ url: "/ed/:site_id/:page_id", diff --git a/app/web/src/render/ed/ed-base.tsx b/app/web/src/nova/ed/ed-base.tsx similarity index 100% rename from app/web/src/render/ed/ed-base.tsx rename to app/web/src/nova/ed/ed-base.tsx diff --git a/app/web/src/render/ed/ed-left.tsx b/app/web/src/nova/ed/ed-left.tsx similarity index 100% rename from app/web/src/render/ed/ed-left.tsx rename to app/web/src/nova/ed/ed-left.tsx diff --git a/app/web/src/render/ed/ed-right.tsx b/app/web/src/nova/ed/ed-right.tsx similarity index 100% rename from app/web/src/render/ed/ed-right.tsx rename to app/web/src/nova/ed/ed-right.tsx diff --git a/app/web/src/render/ed/logic/ed-global.ts b/app/web/src/nova/ed/logic/ed-global.ts similarity index 98% rename from app/web/src/render/ed/logic/ed-global.ts rename to app/web/src/nova/ed/logic/ed-global.ts index bbbf7716..97e93f73 100644 --- a/app/web/src/render/ed/logic/ed-global.ts +++ b/app/web/src/nova/ed/logic/ed-global.ts @@ -76,11 +76,12 @@ export const EDGlobal = { page: { cur: EmptyPage, doc: null as null | DPage, - root: null as null | IRoot, + list: {} as Record, + + building: false, + meta: {} as Record, entry: [] as string[], tree: [] as NodeModel[], - meta: {} as Record, - list: {} as Record, }, comp: { cur: EmptyComp, @@ -112,7 +113,7 @@ export const EDGlobal = { popup: { code: { init: false, - open: false, + open: false, id: "", name: "site", log: "", diff --git a/app/web/src/render/ed/logic/ed-init.ts b/app/web/src/nova/ed/logic/ed-init.ts similarity index 100% rename from app/web/src/render/ed/logic/ed-init.ts rename to app/web/src/nova/ed/logic/ed-init.ts diff --git a/app/web/src/render/ed/logic/ed-route.ts b/app/web/src/nova/ed/logic/ed-route.ts similarity index 97% rename from app/web/src/render/ed/logic/ed-route.ts rename to app/web/src/nova/ed/logic/ed-route.ts index 5fafde9a..6c8f3427 100644 --- a/app/web/src/render/ed/logic/ed-route.ts +++ b/app/web/src/nova/ed/logic/ed-route.ts @@ -1,7 +1,6 @@ import { compress, decompress } from "wasm-gzip"; import { PG } from "./ed-global"; import { treeRebuild } from "./tree/build"; -import { w } from "../../../utils/types/general"; export const edRoute = async (p: PG) => { if (p.status === "ready") { diff --git a/app/web/src/render/ed/logic/ed-sync.tsx b/app/web/src/nova/ed/logic/ed-sync.tsx similarity index 100% rename from app/web/src/render/ed/logic/ed-sync.tsx rename to app/web/src/nova/ed/logic/ed-sync.tsx diff --git a/app/web/src/render/ed/logic/ed-undo.ts b/app/web/src/nova/ed/logic/ed-undo.ts similarity index 100% rename from app/web/src/render/ed/logic/ed-undo.ts rename to app/web/src/nova/ed/logic/ed-undo.ts diff --git a/app/web/src/render/ed/logic/tree/build.tsx b/app/web/src/nova/ed/logic/tree/build.tsx similarity index 98% rename from app/web/src/render/ed/logic/tree/build.tsx rename to app/web/src/nova/ed/logic/tree/build.tsx index 77f14857..26fec5a2 100644 --- a/app/web/src/render/ed/logic/tree/build.tsx +++ b/app/web/src/nova/ed/logic/tree/build.tsx @@ -1,4 +1,5 @@ import { createId } from "@paralleldrive/cuid2"; +import { decompress } from "wasm-gzip"; import { syncronize } from "y-pojo"; import { TypedMap } from "yjs-types"; import { MContent } from "../../../../utils/types/general"; @@ -9,10 +10,9 @@ import { FNCompDef, FNComponent, } from "../../../../utils/types/meta-fn"; -import { DComp } from "../../../../utils/types/root"; +import { DComp, IRoot } from "../../../../utils/types/root"; import { MSection } from "../../../../utils/types/section"; import { EdMeta, PG } from "../ed-global"; -import { decompress } from "wasm-gzip"; export const treeRebuild = async (p: PG, arg?: { note?: string }) => { const doc = p.page.doc; @@ -20,6 +20,9 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => { const root = doc.getMap("map").get("root"); if (root) { + p.page.building = true; + p.render(); + const sections = root.get("childs"); if (sections) { const loaded = new Set(); @@ -60,6 +63,8 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => { } } }); + + p.page.building = false; p.render(); } }; diff --git a/app/web/src/render/ed/panel/activity/user-conn.tsx b/app/web/src/nova/ed/panel/activity/user-conn.tsx similarity index 100% rename from app/web/src/render/ed/panel/activity/user-conn.tsx rename to app/web/src/nova/ed/panel/activity/user-conn.tsx diff --git a/app/web/src/render/ed/panel/header/left/api.tsx b/app/web/src/nova/ed/panel/header/left/api.tsx similarity index 100% rename from app/web/src/render/ed/panel/header/left/api.tsx rename to app/web/src/nova/ed/panel/header/left/api.tsx diff --git a/app/web/src/render/ed/panel/header/left/export.tsx b/app/web/src/nova/ed/panel/header/left/export.tsx similarity index 100% rename from app/web/src/render/ed/panel/header/left/export.tsx rename to app/web/src/nova/ed/panel/header/left/export.tsx diff --git a/app/web/src/render/ed/panel/header/left/js.tsx b/app/web/src/nova/ed/panel/header/left/js.tsx similarity index 100% rename from app/web/src/render/ed/panel/header/left/js.tsx rename to app/web/src/nova/ed/panel/header/left/js.tsx diff --git a/app/web/src/render/ed/panel/header/left/npm.tsx b/app/web/src/nova/ed/panel/header/left/npm.tsx similarity index 100% rename from app/web/src/render/ed/panel/header/left/npm.tsx rename to app/web/src/nova/ed/panel/header/left/npm.tsx diff --git a/app/web/src/render/ed/panel/header/left/site.tsx b/app/web/src/nova/ed/panel/header/left/site.tsx similarity index 100% rename from app/web/src/render/ed/panel/header/left/site.tsx rename to app/web/src/nova/ed/panel/header/left/site.tsx diff --git a/app/web/src/render/ed/panel/header/top-btn.tsx b/app/web/src/nova/ed/panel/header/top-btn.tsx similarity index 100% rename from app/web/src/render/ed/panel/header/top-btn.tsx rename to app/web/src/nova/ed/panel/header/top-btn.tsx diff --git a/app/web/src/nova/ed/panel/main/main.tsx b/app/web/src/nova/ed/panel/main/main.tsx new file mode 100644 index 00000000..52b0724e --- /dev/null +++ b/app/web/src/nova/ed/panel/main/main.tsx @@ -0,0 +1,22 @@ +import { useGlobal } from "web-utils"; +import { Loading } from "../../../../utils/ui/loading"; +import { View } from "../../../view/view"; +import { EDGlobal } from "../../logic/ed-global"; + +export const EdMain = () => { + const p = useGlobal(EDGlobal, "EDITOR"); + return ( +
+ {!!p.page.building && } + {!p.page.building && ( + + )} +
+ ); +}; diff --git a/app/web/src/render/ed/panel/main/pane-resize.tsx b/app/web/src/nova/ed/panel/main/pane-resize.tsx similarity index 100% rename from app/web/src/render/ed/panel/main/pane-resize.tsx rename to app/web/src/nova/ed/panel/main/pane-resize.tsx diff --git a/app/web/src/render/ed/panel/popup/api/api-db.tsx b/app/web/src/nova/ed/panel/popup/api/api-db.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/api/api-db.tsx rename to app/web/src/nova/ed/panel/popup/api/api-db.tsx diff --git a/app/web/src/render/ed/panel/popup/api/api-deploy.tsx b/app/web/src/nova/ed/panel/popup/api/api-deploy.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/api/api-deploy.tsx rename to app/web/src/nova/ed/panel/popup/api/api-deploy.tsx diff --git a/app/web/src/render/ed/panel/popup/api/api-domain.tsx b/app/web/src/nova/ed/panel/popup/api/api-domain.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/api/api-domain.tsx rename to app/web/src/nova/ed/panel/popup/api/api-domain.tsx diff --git a/app/web/src/render/ed/panel/popup/api/api-server.tsx b/app/web/src/nova/ed/panel/popup/api/api-server.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/api/api-server.tsx rename to app/web/src/nova/ed/panel/popup/api/api-server.tsx diff --git a/app/web/src/render/ed/panel/popup/api/api-utils.ts b/app/web/src/nova/ed/panel/popup/api/api-utils.ts similarity index 100% rename from app/web/src/render/ed/panel/popup/api/api-utils.ts rename to app/web/src/nova/ed/panel/popup/api/api-utils.ts diff --git a/app/web/src/render/ed/panel/popup/code/assign.tsx b/app/web/src/nova/ed/panel/popup/code/assign.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/code/assign.tsx rename to app/web/src/nova/ed/panel/popup/code/assign.tsx diff --git a/app/web/src/render/ed/panel/popup/code/code.tsx b/app/web/src/nova/ed/panel/popup/code/code.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/code/code.tsx rename to app/web/src/nova/ed/panel/popup/code/code.tsx diff --git a/app/web/src/render/ed/panel/popup/code/icons.tsx b/app/web/src/nova/ed/panel/popup/code/icons.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/code/icons.tsx rename to app/web/src/nova/ed/panel/popup/code/icons.tsx diff --git a/app/web/src/render/ed/panel/popup/code/name-list.tsx b/app/web/src/nova/ed/panel/popup/code/name-list.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/code/name-list.tsx rename to app/web/src/nova/ed/panel/popup/code/name-list.tsx diff --git a/app/web/src/render/ed/panel/popup/comp/comp-group.tsx b/app/web/src/nova/ed/panel/popup/comp/comp-group.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/comp/comp-group.tsx rename to app/web/src/nova/ed/panel/popup/comp/comp-group.tsx diff --git a/app/web/src/render/ed/panel/popup/npm/npm-algolia.tsx b/app/web/src/nova/ed/panel/popup/npm/npm-algolia.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/npm/npm-algolia.tsx rename to app/web/src/nova/ed/panel/popup/npm/npm-algolia.tsx diff --git a/app/web/src/render/ed/panel/popup/npm/npm-import.tsx b/app/web/src/nova/ed/panel/popup/npm/npm-import.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/npm/npm-import.tsx rename to app/web/src/nova/ed/panel/popup/npm/npm-import.tsx diff --git a/app/web/src/render/ed/panel/popup/npm/npm-items.tsx b/app/web/src/nova/ed/panel/popup/npm/npm-items.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/npm/npm-items.tsx rename to app/web/src/nova/ed/panel/popup/npm/npm-items.tsx diff --git a/app/web/src/render/ed/panel/popup/npm/npm-popup.tsx b/app/web/src/nova/ed/panel/popup/npm/npm-popup.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/npm/npm-popup.tsx rename to app/web/src/nova/ed/panel/popup/npm/npm-popup.tsx diff --git a/app/web/src/render/ed/panel/popup/site/site-form.tsx b/app/web/src/nova/ed/panel/popup/site/site-form.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/site/site-form.tsx rename to app/web/src/nova/ed/panel/popup/site/site-form.tsx diff --git a/app/web/src/render/ed/panel/popup/site/site-head.tsx b/app/web/src/nova/ed/panel/popup/site/site-head.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/site/site-head.tsx rename to app/web/src/nova/ed/panel/popup/site/site-head.tsx diff --git a/app/web/src/render/ed/panel/popup/site/site-tree.tsx b/app/web/src/nova/ed/panel/popup/site/site-tree.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/site/site-tree.tsx rename to app/web/src/nova/ed/panel/popup/site/site-tree.tsx diff --git a/app/web/src/render/ed/panel/popup/site/site-user.tsx b/app/web/src/nova/ed/panel/popup/site/site-user.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/site/site-user.tsx rename to app/web/src/nova/ed/panel/popup/site/site-user.tsx diff --git a/app/web/src/render/ed/panel/popup/site/site.tsx b/app/web/src/nova/ed/panel/popup/site/site.tsx similarity index 100% rename from app/web/src/render/ed/panel/popup/site/site.tsx rename to app/web/src/nova/ed/panel/popup/site/site.tsx diff --git a/app/web/src/render/ed/panel/script/monaco/init.tsx b/app/web/src/nova/ed/panel/script/monaco/init.tsx similarity index 100% rename from app/web/src/render/ed/panel/script/monaco/init.tsx rename to app/web/src/nova/ed/panel/script/monaco/init.tsx diff --git a/app/web/src/render/ed/panel/script/monaco/monaco.tsx b/app/web/src/nova/ed/panel/script/monaco/monaco.tsx similarity index 100% rename from app/web/src/render/ed/panel/script/monaco/monaco.tsx rename to app/web/src/nova/ed/panel/script/monaco/monaco.tsx diff --git a/app/web/src/render/ed/panel/tree/body.tsx b/app/web/src/nova/ed/panel/tree/body.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/body.tsx rename to app/web/src/nova/ed/panel/tree/body.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action.tsx b/app/web/src/nova/ed/panel/tree/node/item/action.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/attach.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/attach.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/attach.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/attach.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/clone.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/clone.tsx similarity index 91% rename from app/web/src/render/ed/panel/tree/node/item/action/clone.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/clone.tsx index 7b3b5a04..77b7d9f9 100644 --- a/app/web/src/render/ed/panel/tree/node/item/action/clone.tsx +++ b/app/web/src/nova/ed/panel/tree/node/item/action/clone.tsx @@ -1,7 +1,7 @@ import { syncronize } from "y-pojo"; import { IContent, MContent } from "../../../../../../../utils/types/general"; import { IItem } from "../../../../../../../utils/types/item"; -import { fillID } from "../../../../../../editor/tools/fill-id"; +import { fillID } from "../../../../../../../render/editor/tools/fill-id"; import { PG } from "../../../../../logic/ed-global"; import { treeRebuild } from "../../../../../logic/tree/build"; diff --git a/app/web/src/render/ed/panel/tree/node/item/action/copy.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/copy.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/copy.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/copy.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/cut.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/cut.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/cut.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/cut.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/del.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/del.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/del.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/del.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/detach.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/detach.tsx similarity index 93% rename from app/web/src/render/ed/panel/tree/node/item/action/detach.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/detach.tsx index e694b1a6..a46676c2 100644 --- a/app/web/src/render/ed/panel/tree/node/item/action/detach.tsx +++ b/app/web/src/nova/ed/panel/tree/node/item/action/detach.tsx @@ -2,7 +2,7 @@ import { syncronize } from "y-pojo"; import { IItem } from "../../../../../../../utils/types/item"; import { PG } from "../../../../../logic/ed-global"; import { treeRebuild } from "../../../../../logic/tree/build"; -import { fillID } from "../../../../../../editor/tools/fill-id"; +import { fillID } from "../../../../../../../render/editor/tools/fill-id"; export const edActionDetach = (p: PG, item: IItem) => { const mitem = p.page.meta[item.id].mitem; diff --git a/app/web/src/render/ed/panel/tree/node/item/action/hide.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/hide.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/hide.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/hide.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/new-comp.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/new-comp.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/new-comp.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/new-comp.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/paste.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/paste.tsx similarity index 94% rename from app/web/src/render/ed/panel/tree/node/item/action/paste.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/paste.tsx index 70daa0ee..03740252 100644 --- a/app/web/src/render/ed/panel/tree/node/item/action/paste.tsx +++ b/app/web/src/nova/ed/panel/tree/node/item/action/paste.tsx @@ -3,7 +3,7 @@ import { IContent } from "../../../../../../../utils/types/general"; import { MItem } from "../../../../../../../utils/types/item"; import { PG, active } from "../../../../../logic/ed-global"; import { treeRebuild } from "../../../../../logic/tree/build"; -import { fillID } from "../../../../../../editor/tools/fill-id"; +import { fillID } from "../../../../../../../render/editor/tools/fill-id"; export const edActionPaste = async (p: PG, item: IContent) => { const mitem = p.page.meta[item.id].mitem; diff --git a/app/web/src/render/ed/panel/tree/node/item/action/rename.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/rename.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/rename.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/rename.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/unwrap.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/unwrap.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/unwrap.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/unwrap.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/action/wrap.tsx b/app/web/src/nova/ed/panel/tree/node/item/action/wrap.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/action/wrap.tsx rename to app/web/src/nova/ed/panel/tree/node/item/action/wrap.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/ctx-menu.tsx b/app/web/src/nova/ed/panel/tree/node/item/ctx-menu.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/ctx-menu.tsx rename to app/web/src/nova/ed/panel/tree/node/item/ctx-menu.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/indent-hook.ts b/app/web/src/nova/ed/panel/tree/node/item/indent-hook.ts similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/indent-hook.ts rename to app/web/src/nova/ed/panel/tree/node/item/indent-hook.ts diff --git a/app/web/src/render/ed/panel/tree/node/item/indent.tsx b/app/web/src/nova/ed/panel/tree/node/item/indent.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/indent.tsx rename to app/web/src/nova/ed/panel/tree/node/item/indent.tsx diff --git a/app/web/src/render/ed/panel/tree/node/item/name.tsx b/app/web/src/nova/ed/panel/tree/node/item/name.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/item/name.tsx rename to app/web/src/nova/ed/panel/tree/node/item/name.tsx diff --git a/app/web/src/render/ed/panel/tree/node/on-drop.tsx b/app/web/src/nova/ed/panel/tree/node/on-drop.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/on-drop.tsx rename to app/web/src/nova/ed/panel/tree/node/on-drop.tsx diff --git a/app/web/src/render/ed/panel/tree/node/render.tsx b/app/web/src/nova/ed/panel/tree/node/render.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/node/render.tsx rename to app/web/src/nova/ed/panel/tree/node/render.tsx diff --git a/app/web/src/render/ed/panel/tree/search.tsx b/app/web/src/nova/ed/panel/tree/search.tsx similarity index 100% rename from app/web/src/render/ed/panel/tree/search.tsx rename to app/web/src/nova/ed/panel/tree/search.tsx diff --git a/app/web/src/nova/view/logic/global.ts b/app/web/src/nova/view/logic/global.ts new file mode 100644 index 00000000..18720301 --- /dev/null +++ b/app/web/src/nova/view/logic/global.ts @@ -0,0 +1,9 @@ +import { EdMeta } from "../../ed/logic/ed-global"; + +export const ViewGlobal = { + mode: "init" as "init" | "ready", + meta: {} as Record, + entry: [] as string[], +}; + +export type VG = typeof ViewGlobal & { render: () => void }; diff --git a/app/web/src/nova/view/logic/init.ts b/app/web/src/nova/view/logic/init.ts new file mode 100644 index 00000000..79f5dc17 --- /dev/null +++ b/app/web/src/nova/view/logic/init.ts @@ -0,0 +1,12 @@ +import { useGlobal } from "web-utils"; +import { VG, ViewGlobal } from "./global"; +import { VLoad } from "./types"; + +export const VInit = (v: VG, load: VLoad) => { + v.mode = "ready"; + + if (load.mode === "tree_meta") { + v.meta = load.meta; + v.entry = load.entry; + } +}; diff --git a/app/web/src/nova/view/logic/types.ts b/app/web/src/nova/view/logic/types.ts new file mode 100644 index 00000000..79ee1a2a --- /dev/null +++ b/app/web/src/nova/view/logic/types.ts @@ -0,0 +1,10 @@ +import { EdMeta } from "../../ed/logic/ed-global"; + +export type VLoad = + | { mode: "page"; page_id: string } + | { mode: "pathname"; pathname: string } + | { + mode: "tree_meta"; + entry: string[]; + meta: Record; + }; diff --git a/app/web/src/nova/view/render/section.tsx b/app/web/src/nova/view/render/section.tsx new file mode 100644 index 00000000..d9eafba0 --- /dev/null +++ b/app/web/src/nova/view/render/section.tsx @@ -0,0 +1,10 @@ +import { FC, ReactNode } from "react"; +import { ISection } from "../../../utils/types/section"; + +export const VSection: FC<{ item: ISection; children: ReactNode }> = ({ + item, + children, +}) => { + console.log(item); + return
; +}; diff --git a/app/web/src/nova/view/view.tsx b/app/web/src/nova/view/view.tsx new file mode 100644 index 00000000..9147b59e --- /dev/null +++ b/app/web/src/nova/view/view.tsx @@ -0,0 +1,37 @@ +import { FC } from "react"; +import { useGlobal } from "web-utils"; +import { Loading } from "../../utils/ui/loading"; +import { ViewGlobal } from "./logic/global"; +import { VInit } from "./logic/init"; +import { VLoad } from "./logic/types"; +import { VSection } from "./render/section"; +import { ISection } from "../../utils/types/section"; + +export const View: FC<{ + load: VLoad; +}> = ({ load }) => { + const v = useGlobal(ViewGlobal, "VIEW"); + + if (v.mode === "init") { + VInit(v, load); + } + + return ( +
+ {v.mode !== "ready" ? ( + + ) : ( + v.entry.map((section_id) => { + const meta = v.meta[section_id]; + const section = meta.item as ISection; + + return ( + + Hello + + ); + }) + )} +
+ ); +}; diff --git a/app/web/src/render/ed/panel/main/main.tsx b/app/web/src/render/ed/panel/main/main.tsx deleted file mode 100644 index 80101255..00000000 --- a/app/web/src/render/ed/panel/main/main.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export const EdMain = () => { - return
; -}; diff --git a/app/web/src/render/editor/panel/e-main-editor.tsx b/app/web/src/render/editor/panel/e-main-editor.tsx index 995ed5df..9d38f3f1 100644 --- a/app/web/src/render/editor/panel/e-main-editor.tsx +++ b/app/web/src/render/editor/panel/e-main-editor.tsx @@ -5,7 +5,7 @@ import { mobileCSS } from "../elements/e-page"; import { editorStyle } from "../elements/style"; import { EditorGlobal } from "../logic/global"; import { Toolbar } from "./toolbar/Toolbar"; -import { EdScriptInit } from "../../ed/panel/script/monaco/init"; +import { EdScriptInit } from "../../../nova/ed/panel/script/monaco/init"; const ETree = lazy(async () => ({ default: (await import("./tree/tree")).ETree, diff --git a/app/web/src/utils/sync/ws-client.ts b/app/web/src/utils/sync/ws-client.ts index 9005f3a2..12234c74 100644 --- a/app/web/src/utils/sync/ws-client.ts +++ b/app/web/src/utils/sync/ws-client.ts @@ -10,7 +10,7 @@ import { } from "../../../../srv/ws/sync/actions-def"; import { UserConf } from "../../../../srv/ws/sync/entity/user"; import { SyncType } from "../../../../srv/ws/sync/type"; -import { ESite } from "../../render/ed/logic/ed-global"; +import { ESite } from "../../nova/ed/logic/ed-global"; import { w } from "../types/general"; import { initIDB } from "./idb"; const packr = new Packr({ structuredClone: true });