import React from "react"
import { Button, SIZE, KIND } from "baseui/button"
import { Block } from "baseui/block"
import { StatefulTooltip, PLACEMENT } from "baseui/tooltip"
import { useActiveObject, useEditor } from "@layerhub-io/react"
import { StatefulPopover } from "baseui/popover"
import DeleteIcon from "~/components/Icons/Delete"
import LayersIcon from "~/components/Icons/Layers"
import AlignCenter from "~/components/Icons/AlignCenter"
import AlignLeft from "~/components/Icons/AlignLeft"
import AlignRight from "~/components/Icons/AlignRight"
import AlignTop from "~/components/Icons/AlignTop"
import AlignMiddle from "~/components/Icons/AlignMiddle"
import BringToFront from "~/components/Icons/BringToFront"
import SendToBack from "~/components/Icons/SendToBack"
import AlignBottom from "~/components/Icons/AlignBottom"
export default function () {
const [state, setState] = React.useState({ isGroup: false, isMultiple: false })
const activeObject = useActiveObject() as any
const editor = useEditor()
React.useEffect(() => {
if (activeObject) {
setState({ isGroup: activeObject.type === "group", isMultiple: activeObject.type === "activeSelection" })
}
}, [activeObject])
React.useEffect(() => {
let watcher = async () => {
if (activeObject) {
// @ts-ignore
setState({ isGroup: activeObject.type === "group", isMultiple: activeObject.type === "activeSelection" })
}
}
if (editor) {
editor.on("history:changed", watcher)
}
return () => {
if (editor) {
editor.off("history:changed", watcher)
}
}
}, [editor, activeObject])
return (
{state.isGroup ? (
) : state.isMultiple ? (
) : null}
{(state.isGroup || !state.isMultiple) && }
)
}
function CommonLayers() {
const editor = useEditor()
const [checked, setChecked] = React.useState(true)
const activeObject = useActiveObject()
React.useEffect(() => {
if (activeObject) {
// @ts-ignore
setChecked(!!activeObject.clipPath)
}
}, [activeObject])
return (
(
}
onClick={() => editor.objects.bringToFront()}
kind={KIND.tertiary}
size={SIZE.mini}
>
Bring to front
}
onClick={() => editor.objects.sendToBack()}
kind={KIND.tertiary}
size={SIZE.mini}
>
Send to back
)}
returnFocus
autoFocus
>
)
}
function CommonAlign() {
const editor = useEditor()
return (
(
)}
returnFocus
autoFocus
>
)
}