From 77a527447cdccbbf390e66fb1983f10ea1b40803 Mon Sep 17 00:00:00 2001 From: Rizky Date: Thu, 7 Dec 2023 18:38:07 +0700 Subject: [PATCH] wip fix --- app/srv/ws/sync/entity/user.ts | 1 + app/web/package.json | 1 + app/web/src/nova/ed/logic/ed-global.ts | 2 +- app/web/src/nova/ed/panel/main/main.tsx | 115 +++++++++++------- .../ed/panel/side/prop-instance/prop-text.tsx | 6 +- app/web/src/nova/view/logic/global.ts | 2 +- .../src/nova/view/render/meta/children.tsx | 72 ++++++----- app/web/src/nova/view/view.tsx | 7 +- bun.lockb | Bin 256608 -> 257080 bytes 9 files changed, 123 insertions(+), 83 deletions(-) diff --git a/app/srv/ws/sync/entity/user.ts b/app/srv/ws/sync/entity/user.ts index f258ccea..4bbf1c31 100644 --- a/app/srv/ws/sync/entity/user.ts +++ b/app/srv/ws/sync/entity/user.ts @@ -16,6 +16,7 @@ export const user = { site_id: string; page_id: string; comp_id?: string; + client_id: string; select: "" | "comp" | "item" | "section" | "text"; }, "client_id" diff --git a/app/web/package.json b/app/web/package.json index f71dff51..7a50be9e 100644 --- a/app/web/package.json +++ b/app/web/package.json @@ -12,6 +12,7 @@ "@minoru/react-dnd-treeview": "^3.4.4", "@monaco-editor/react": "^4.6.0", "@paralleldrive/cuid2": "2.2.2", + "react-contenteditable": "^3.3.7", "@parcel/packager-wasm": "^2.10.3", "@parcel/service-worker": "^2.10.3", "recast": "^0.23.4", diff --git a/app/web/src/nova/ed/logic/ed-global.ts b/app/web/src/nova/ed/logic/ed-global.ts index 5b2c0885..d3310ec3 100644 --- a/app/web/src/nova/ed/logic/ed-global.ts +++ b/app/web/src/nova/ed/logic/ed-global.ts @@ -64,7 +64,7 @@ const target = { }; export const active = { hover_id: "", - text: { id: "", content: "" }, + text: { id: "", content: "", timeout: null as any, el: null as any }, get item_id() { if (target.active_id === false) { target.active_id = localStorage.getItem("prasi-active-id") || ""; diff --git a/app/web/src/nova/ed/panel/main/main.tsx b/app/web/src/nova/ed/panel/main/main.tsx index dcddd623..6742d4ae 100644 --- a/app/web/src/nova/ed/panel/main/main.tsx +++ b/app/web/src/nova/ed/panel/main/main.tsx @@ -1,10 +1,11 @@ -import { useGlobal } from "web-utils"; +import { useGlobal, useLocal } from "web-utils"; import { Loading } from "../../../../utils/ui/loading"; import { View } from "../../../view/view"; import { EDGlobal, active } from "../../logic/ed-global"; import { getMetaById } from "../../logic/tree/build"; import { loadComponent } from "../../logic/tree/sync-walk"; import { code } from "../popup/code/code"; +import { useEffect } from "react"; export const EdMain = () => { const p = useGlobal(EDGlobal, "EDITOR"); @@ -51,10 +52,11 @@ export const EdMain = () => { const item = meta.item; if (active.comp_id) { - if (meta.parent_mcomp) { + const p = meta.parent_mcomp; + if (p) { if ( - meta.parent_mcomp?.mcomp.get("component")?.get("id") !== - active.comp_id + p.mitem.get("id") !== active.instance.item_id || + p.mcomp.get("component")?.get("id") !== active.comp_id ) return false; } @@ -112,15 +114,16 @@ export const EdMain = () => { const item = meta.item; if (active.comp_id) { - if (meta.parent_mcomp) { + const p = meta.parent_mcomp; + if (p) { if ( - meta.parent_mcomp?.mcomp.get("component")?.get("id") !== - active.comp_id + p.mitem.get("id") !== active.instance.item_id || + p.mcomp.get("component")?.get("id") !== active.comp_id ) return false; } } - + if ( item.originalId === active.item_id || item.id === active.item_id @@ -194,46 +197,74 @@ export const EdMain = () => { p.page.render(); focus(); }, - text(meta) { + text({ meta }) { const { item } = meta; + + useEffect(() => { + return () => { + active.text.id = ""; + p.render(); + }; + }, []); + + const updateWithTimeout = (timeout: number) => { + return new Promise((resolve) => { + const saving = { + id: active.text.id, + content: active.text.content, + }; + + clearTimeout(active.text.timeout); + active.text.timeout = setTimeout(() => { + const meta = getMetaById(p, saving.id); + if (meta && meta.mitem) { + meta.mitem.set("html", saving.content); + } + resolve(); + }, timeout); + }); + }; + if (active.text.id !== item.id) { + clearTimeout(active.text.timeout); active.text.id = item.id; active.text.content = item.html || ""; + active.text.el = ( +
{ + if (ref !== document.activeElement && ref) { + const renaming = + document.querySelector(".rename-item"); + const modals = document.querySelectorAll( + "[data-floating-ui-portal]" + ); + if (modals.length === 0 && !renaming) { + ref.focus(); + setEndOfContenteditable(ref); + } + } + }} + onPointerDownCapture={(e) => { + e.stopPropagation(); + }} + contentEditable + spellCheck={false} + onInput={(e) => { + const val = e.currentTarget.innerHTML; + item.html = val; + active.text.id = item.id; + active.text.content = val; + updateWithTimeout(100); + }} + dangerouslySetInnerHTML={{ __html: item.html || "" }} + >
+ ); } - return ( -
{ - if (ref !== document.activeElement && ref) { - const renaming = document.querySelector(".rename-item"); - const modals = document.querySelectorAll( - "[data-floating-ui-portal]" - ); - if (modals.length === 0 && !renaming) { - ref.focus(); - setEndOfContenteditable(ref); - } - } - }} - contentEditable - spellCheck={false} - onInput={(e) => { - const val = e.currentTarget.innerHTML; - active.text.id = item.id; - active.text.content = val; - }} - onBlur={() => { - const meta = getMetaById(p, item.id); - if (meta && meta.mitem && active.text.id === item.id) { - meta.mitem.set("html", active.text.content); - } - }} - dangerouslySetInnerHTML={{ __html: item.html || "" }} - >
- ); + return active.text.el; }, }} /> diff --git a/app/web/src/nova/ed/panel/side/prop-instance/prop-text.tsx b/app/web/src/nova/ed/panel/side/prop-instance/prop-text.tsx index f11584c4..c69d4909 100644 --- a/app/web/src/nova/ed/panel/side/prop-instance/prop-text.tsx +++ b/app/web/src/nova/ed/panel/side/prop-instance/prop-text.tsx @@ -29,7 +29,7 @@ export const EdPropInstanceText: FC<{ if (val) { try { eval(`local.value = ${valBuilt}`); - } catch (e) { } + } catch (e) {} } else { local.value = ""; } @@ -41,7 +41,7 @@ export const EdPropInstanceText: FC<{ {name} ); - + return (
{name.length > 8 ? ( @@ -52,7 +52,7 @@ export const EdPropInstanceText: FC<{ label )} { diff --git a/app/web/src/nova/view/logic/global.ts b/app/web/src/nova/view/logic/global.ts index b069fce2..ce2c94f1 100644 --- a/app/web/src/nova/view/logic/global.ts +++ b/app/web/src/nova/view/logic/global.ts @@ -25,7 +25,7 @@ export const ViewGlobal = { | { get: (meta: EdMeta) => boolean; set: (meta: EdMeta) => void; - text?: (meta: EdMeta) => ReactNode; + text?: (arg: { meta: EdMeta }) => ReactNode; }, hover: undefined as | undefined diff --git a/app/web/src/nova/view/render/meta/children.tsx b/app/web/src/nova/view/render/meta/children.tsx index 67302210..5abdf692 100644 --- a/app/web/src/nova/view/render/meta/children.tsx +++ b/app/web/src/nova/view/render/meta/children.tsx @@ -1,42 +1,48 @@ import { FC, Fragment, ReactNode } from "react"; -import { useGlobal } from "web-utils"; +import { useGlobal, useLocal } from "web-utils"; import { EdMeta } from "../../../ed/logic/ed-global"; import { ViewGlobal } from "../../logic/global"; import { ViewMeta } from "./meta"; export const ViewMetaChildren: FC<{ - meta: EdMeta, - className?: string -}> = ({ - meta, - className -}) => { - const v = useGlobal(ViewGlobal, "VIEW"); - const children: Record = {}; - const item = meta.item; - if (item.type !== "text") { - for (const child of item.childs) { - if (child.id) { - children[child.id] = (); - } - } - } else { - if (item.id) { - if (v.view.active?.text && v.view.active?.get(meta)) { - children[item.id] = - {v.view.active.text(meta)} - ; - } else { - children[item.id] = - ; - } + meta: EdMeta; + className?: string; +}> = ({ meta, className }) => { + const v = useGlobal(ViewGlobal, "VIEW"); + const children: Record = {}; + const item = meta.item; + if (item.type !== "text") { + for (const child of item.childs) { + if (child.id) { + children[child.id] = ; } } + } else { + if (item.id) { + if (v.view.active?.text && v.view.active?.get(meta)) { + const ActiveText = v.view.active.text; + children[item.id] = ( + + + + ); + } else { + children[item.id] = ( + + ); + } + } + } - return <> - {/*
{item.id} - {item.originalId}
*/} - {Object.values(children)}; - }; + return ( + <> + {/*
+ {item.id} - {item.originalId} +
*/} + {Object.values(children)} + + ); +}; diff --git a/app/web/src/nova/view/view.tsx b/app/web/src/nova/view/view.tsx index 42578ef2..0beca60f 100644 --- a/app/web/src/nova/view/view.tsx +++ b/app/web/src/nova/view/view.tsx @@ -26,7 +26,7 @@ type ViewProp = { active?: { get: (item: EdMeta) => boolean; set: (item: EdMeta) => void; - text?: (item: EdMeta) => ReactNode + text?: (arg: { meta: EdMeta }) => ReactNode; }; }; @@ -59,8 +59,9 @@ const BoxedView: FC = ({ v.script.api_url = api_url; if (hidden) v.view.hidden = hidden; - if (hover) v.view.hover = hover; - if (active) v.view.active = active; + if (hover && !v.view.hover) v.view.hover = hover; + if (active && !v.view.active) v.view.active = active; + if (v.current.page_id !== page_id || v.current.site_id !== site_id) { v.status = "init"; } diff --git a/bun.lockb b/bun.lockb index cc191e813eb427a493f6e7e53674f3e167d339c1..f561bbb1817b115de24e8cb49630854189e0c078 100755 GIT binary patch delta 42228 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 St}s!Nc|XcNoO;dS^8W#M-XOUE delta 41897 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 t