UNPKG

@tomorrowevening/hermes

Version:

An extendable set of Web Tools controlled via a separate window for non-intereference with content.

2 lines (1 loc) 2 kB
"use strict";const s=require("react/jsx-runtime"),a=require("react");;/* empty css */const E=require("./Accordion.cjs"),u=require("./ContainerObject.cjs"),j=require("./DebugData.cjs"),x=require("./inspector/Inspector.cjs"),i=require("../../core/remote/RemoteThree.cjs");function T(n){const[r]=a.useState([]),[c]=a.useState([]),[R,l]=a.useState(0),d=o=>{const t=o.value;for(let e=0;e<r.length;e++)if(t.uuid===r[e].uuid)return;r.push(t),c.push(s.jsx(E,{three:n.three,label:`Scene: ${t.name}`,scene:t,open:!1,visible:!1,onRefresh:()=>{n.three.refreshScene(t.name)},children:s.jsx(u,{child:t,scene:t,three:n.three})},t.name)),l(Date.now())},v=o=>{const t=o.value;for(let e=0;e<r.length;e++)if(t.uuid===r[e].uuid){r[e]=t,c[e]=s.jsx(E,{three:n.three,label:`Scene: ${t.name}`,scene:t,open:c[e].props.open,visible:c[e].props.visible,onRefresh:()=>{n.three.refreshScene(t.name)},children:s.jsx(u,{child:t,scene:t,three:n.three})},t.name),l(Date.now());return}},S=o=>{const t=o.value;for(let e=0;e<r.length;e++)if(t.uuid===r[e].uuid){r.splice(e,1),c.splice(e,1),l(Date.now());return}},m=o=>{const t=o.value.name;for(let e=0;e<r.length;e++){const h=r[e],f=h.name===t;c[e]=s.jsx(E,{three:n.three,label:`Scene: ${h.name}`,scene:h,open:f,visible:f,onRefresh:()=>{n.three.refreshScene(h.name)},children:s.jsx(u,{child:h,scene:h,three:n.three})},h.name)}l(Date.now())};return a.useEffect(()=>(n.three.addEventListener(i.ToolEvents.ADD_SCENE,d),n.three.addEventListener(i.ToolEvents.SET_SCENE,m),n.three.addEventListener(i.ToolEvents.REFRESH_SCENE,v),n.three.addEventListener(i.ToolEvents.REMOVE_SCENE,S),()=>{n.three.removeEventListener(i.ToolEvents.ADD_SCENE,d),n.three.removeEventListener(i.ToolEvents.SET_SCENE,m),n.three.removeEventListener(i.ToolEvents.REFRESH_SCENE,v),n.three.removeEventListener(i.ToolEvents.REMOVE_SCENE,S)}),[]),s.jsxs("div",{id:"SidePanel",children:[s.jsx("div",{className:"scenes",children:c},R),s.jsx(x,{three:n.three}),s.jsx(j,{three:n.three})]})}module.exports=T;