import { Fade, IconButton, Flex, Image, Popover, Portal, PopoverContent, PopoverArrow, PopoverBody, PopoverAnchor, useEventListener, useColorModeValue, } from '@chakra-ui/react' import { ImageIcon, PlusIcon } from '@/components/icons' import { useTypebot } from '@/features/editor/providers/TypebotProvider' import { ItemIndices } from '@typebot.io/schemas' import React, { useRef } from 'react' import { PictureChoiceItem } from '@typebot.io/schemas/features/blocks/inputs/pictureChoice' import { useGraph } from '@/features/graph/providers/GraphProvider' import { PictureChoiceItemSettings } from './PictureChoiceItemSettings' import { isSvgSrc } from '@typebot.io/lib' type Props = { item: PictureChoiceItem indices: ItemIndices isMouseOver: boolean } export const PictureChoiceItemNode = ({ item, indices, isMouseOver, }: Props) => { const emptyImageBgColor = useColorModeValue('gray.100', 'gray.700') const { openedItemId, setOpenedItemId } = useGraph() const { updateItem, createItem, typebot } = useTypebot() const ref = useRef(null) const handlePlusClick = (e: React.MouseEvent) => { e.stopPropagation() const itemIndex = indices.itemIndex + 1 createItem({}, { ...indices, itemIndex }) } const handleMouseDown = (e: React.MouseEvent) => e.stopPropagation() const openPopover = () => { setOpenedItemId(item.id) } const handleItemChange = (updates: Partial) => { updateItem(indices, { ...item, ...updates }) } const handleMouseWheel = (e: WheelEvent) => { e.stopPropagation() } useEventListener('wheel', handleMouseWheel, ref.current) return ( {item.pictureSrc ? ( Picture choice image ) : ( )} } size="xs" shadow="md" colorScheme="gray" borderWidth={1} onClick={handlePlusClick} /> {typebot && ( )} ) }