From 37175f8404cf52ede3be40c98f33025f54dc15f3 Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 30 Mar 2024 16:19:36 +0700 Subject: [PATCH] wip fix --- .../src/nova/ed/panel/side/prop-master.tsx | 59 ++++++++++++++----- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/app/web/src/nova/ed/panel/side/prop-master.tsx b/app/web/src/nova/ed/panel/side/prop-master.tsx index 1e95dd84..fab91fe9 100644 --- a/app/web/src/nova/ed/panel/side/prop-master.tsx +++ b/app/web/src/nova/ed/panel/side/prop-master.tsx @@ -7,13 +7,14 @@ import { } from "@minoru/react-dnd-treeview"; import { FC, useState } from "react"; import { HTML5Backend } from "react-dnd-html5-backend"; -import { useGlobal } from "web-utils"; +import { useGlobal, useLocal } from "web-utils"; import { IItem } from "../../../../utils/types/item"; import { FMCompDef } from "../../../../utils/types/meta-fn"; import { EDGlobal, IMeta, active } from "../../logic/ed-global"; import { treeRebuild } from "../../logic/tree/build"; import { propPopover } from "./prop-master/prop-form"; import { EdPropCompTreeItem, PropItem } from "./prop-master/tree-item"; +import { Popover } from "../../../../utils/ui/popover"; const propRef = { el: null as any, @@ -22,6 +23,10 @@ const propRef = { export const EdSidePropComp: FC<{ meta: IMeta }> = ({ meta }) => { const p = useGlobal(EDGlobal, "EDITOR"); const item = meta?.item as IItem; + const local = useLocal({ + json: "", + open: false, + }); const [_, set] = useState({}); const render = () => { set({}); @@ -213,22 +218,46 @@ export const EdSidePropComp: FC<{ meta: IMeta }> = ({ meta }) => { > + New Prop -
{ - p.ui.popup.script.mode = "js"; - p.ui.popup.script.open = true; - p.ui.popup.script.type = "comp-types"; - p.render(); + { + local.json = e.currentTarget.value; + local.render(); + }} + value={local.json} + > + } + open={local.open} + onOpenChange={(open) => { + if (!open) { + syncronize(mprops as any, JSON.parse(local.json)); + treeRebuild(p); + p.render(); + } else { + local.json = JSON.stringify(mprops?.toJSON(), null, 2); + } + local.open = open; + local.render(); }} > - `, - }} - > - Typings -
+
+ `, + }} + > + JSON +
+