import React from "react" import { useEditor, useObjects } from "@layerhub-io/react" import { Block } from "baseui/block" import AngleDoubleLeft from "~/components/Icons/AngleDoubleLeft" import Scrollable from "~/components/Scrollable" import { ILayer } from "@layerhub-io/types" import Locked from "~/components/Icons/Locked" import Unlocked from "~/components/Icons/Unlocked" import Eye from "~/components/Icons/Eye" import EyeCrossed from "~/components/Icons/EyeCrossed" import Delete from "~/components/Icons/Delete" import { Button, KIND, SIZE } from "baseui/button" import useSetIsSidebarOpen from "~/hooks/useSetIsSidebarOpen" export default function () { const editor = useEditor() const objects = useObjects() as ILayer[] const [layerObjects, setLayerObjects] = React.useState([]) const setIsSidebarOpen = useSetIsSidebarOpen() React.useEffect(() => { if (objects) { setLayerObjects(objects) } }, [objects]) React.useEffect(() => { let watcher = async () => { if (objects) { setLayerObjects([...objects]) } } if (editor) { editor.on("history:changed", watcher) } return () => { if (editor) { editor.off("history:changed", watcher) } } }, [editor, objects]) return ( Layers setIsSidebarOpen(false)} $style={{ cursor: "pointer", display: "flex" }}> {layerObjects.map((object) => ( editor.objects.select(object.id)}> {object.name} {object.locked ? ( ) : ( )} {object.visible ? ( ) : ( )} ))} ) }