import { Box, Flex, HoverCard } from "@mantine/core"
import { ArrowBigRightDashIcon, MinusCircleIcon } from "lucide-react"
import { useCallback } from "react"
import { useBottomToolsStore } from "../useBottomToolsStore"
import { useDescToolsStore } from "../useDescToolsStore"
import { useTopToolsStore } from "../useTopToolsStore"
const MetaOperationTool = () => {
const { metaOperation, metaData } = useDescToolsStore()
const { activeImage } = useBottomToolsStore()
const currentImageData = metaData.get(activeImage) || []
const HoverContent = useCallback(
(index?: number) => {
if (!metaOperation) return <>>
const { sub_attributes_describe } = metaOperation
return (
子属性选择
{sub_attributes_describe.length ? (
{sub_attributes_describe.map((subDesc) => (
{subDesc.chinese_name}
{subDesc.optional_item.map((option) => (
{
e.currentTarget.style.backgroundColor =
"var(--mantine-color-gray-1)"
}}
onMouseLeave={(e) => {
e.currentTarget.style.backgroundColor = "transparent"
}}
onClick={() => {
const map = useDescToolsStore.getState().metaData
if (map.has(activeImage)) {
let arr = map.get(activeImage) || []
if (index || index === 0) arr[index] = option
else arr.push(option)
map.set(activeImage, arr)
} else {
map.set(activeImage, [option])
}
useDescToolsStore.getState().setMetaData(map)
}}>
{option}
))}
))}
) : (
无
)}
)
},
[activeImage, metaOperation]
)
const handleDelete = (index: number) => {
const map = useDescToolsStore.getState().metaData
let arr = (map.get(activeImage) || []).filter((_v, i) => i !== index)
map.set(activeImage, arr)
useDescToolsStore.getState().setMetaData(map)
}
return (
{currentImageData.map((text, index) =>
!useTopToolsStore.getState().isView ? (
{/* Replaced Popover with HoverCard for better hover interaction */}
{text}
{
e.stopPropagation()
handleDelete(index)
}}>
{HoverContent(index)}
{index < currentImageData.length - 1 ? (
) : null}
) : (
{text}
{index < currentImageData.length - 1 ? (
) : null}
)
)}
{!useTopToolsStore.getState().isView ? (
{/* Replaced Popover with HoverCard */}
新增
{HoverContent()}
) : null}
)
}
export default MetaOperationTool