import { Box, Button, CloseButton, Fade, Flex, FlexProps, useEventListener, VStack, } from '@chakra-ui/react' import { TypebotViewer } from 'bot-engine' import { headerHeight } from 'components/shared/TypebotHeader' import { useEditor } from 'contexts/EditorContext' import { useGraph } from 'contexts/GraphContext' import { useTypebot } from 'contexts/TypebotContext/TypebotContext' import React, { useMemo, useState } from 'react' import { parseTypebotToPublicTypebot } from 'services/publicTypebot' export const PreviewDrawer = () => { const { typebot } = useTypebot() const { setRightPanel } = useEditor() const { previewingIds, setPreviewingIds } = useGraph() const [isResizing, setIsResizing] = useState(false) const [width, setWidth] = useState(500) const [isResizeHandleVisible, setIsResizeHandleVisible] = useState(false) const [restartKey, setRestartKey] = useState(0) const publicTypebot = useMemo( () => (typebot ? { ...parseTypebotToPublicTypebot(typebot) } : undefined), [typebot] ) const handleMouseDown = () => { setIsResizing(true) } const handleMouseMove = (e: MouseEvent) => { if (!isResizing) return setWidth(width - e.movementX) } useEventListener('mousemove', handleMouseMove) const handleMouseUp = () => { setIsResizing(false) } useEventListener('mouseup', handleMouseUp) const handleNewBlockVisible = (targetId: string) => setPreviewingIds({ sourceId: !previewingIds.sourceId ? typebot?.blocks.allIds[0] : previewingIds.targetId, targetId: targetId, }) const handleRestartClick = () => setRestartKey((key) => key + 1) return ( setIsResizeHandleVisible(true)} onMouseLeave={() => setIsResizeHandleVisible(false)} p="6" > setRightPanel(undefined)} /> {publicTypebot && ( )} ) } const ResizeHandle = (props: FlexProps) => { return ( ) }