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 63d690b7..82af56bb 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
@@ -2,6 +2,7 @@ import { NodeModel, RenderParams } from "@minoru/react-dnd-treeview";
import { FC, useEffect } from "react";
import { useGlobal, useLocal } from "web-utils";
import { EDGlobal, EdMeta } from "../../../../logic/ed-global";
+import { Tooltip } from "../../../../../../utils/ui/tooltip";
export const EdTreeName = ({
node,
@@ -71,7 +72,7 @@ export const EdTreeName = ({
p.render();
}}
/>
- ) : (
+ ) : (
{/*
{node.id} - {item.originalId}
*/}
@@ -88,9 +89,12 @@ const Name: FC<{ name: string; is_jsx_prop: boolean }> = ({
if (is_jsx_prop) {
return (
);
diff --git a/app/web/src/nova/ed/panel/tree/node/render.tsx b/app/web/src/nova/ed/panel/tree/node/render.tsx
index ba7b9dc5..4e966ca0 100644
--- a/app/web/src/nova/ed/panel/tree/node/render.tsx
+++ b/app/web/src/nova/ed/panel/tree/node/render.tsx
@@ -2,13 +2,14 @@ import { NodeRender } from "@minoru/react-dnd-treeview";
import { useGlobal, useLocal } from "web-utils";
import { Loading } from "../../../../../utils/ui/loading";
import { EDGlobal, EdMeta, active } from "../../../logic/ed-global";
+import { getMetaById } from "../../../logic/tree/build";
import { EdTreeAction } from "./item/action";
import { EdTreeCtxMenu } from "./item/ctx-menu";
import { EdTreeIndent } from "./item/indent";
import { EdTreeName } from "./item/name";
import { treeItemKeyMap } from "./key-map";
-import { useEffect } from "react";
-import { getMetaById } from "../../../logic/tree/build";
+
+const jsxPropLoadingRender = {} as Record
;
export const nodeRender: NodeRender = (node, prm) => {
const p = useGlobal(EDGlobal, "EDITOR");
@@ -27,6 +28,29 @@ export const nodeRender: NodeRender = (node, prm) => {
);
}
+ if (node.data?.jsx_prop_name) {
+ const meta = getMetaById(p, node.data?.parent_item.id);
+ if (meta) {
+ if (meta.propvis) {
+ if (meta.propvis[node.data.jsx_prop_name] === false) return <>>;
+ } else {
+ if (!jsxPropLoadingRender[meta.item.id]) {
+ jsxPropLoadingRender[meta.item.id] = node.data.jsx_prop_name;
+ }
+ if (jsxPropLoadingRender[meta.item.id] === node.data.jsx_prop_name) {
+ return (
+
+
+
+ );
+ }
+ return <>>;
+ }
+ }
+ }
+
return (
{