import { ChangeEvent, useEffect, useState } from 'react' import { Button, Flex, HStack, Input, Stack, Text } from '@chakra-ui/react' import { SearchContextManager } from '@giphy/react-components' import { UploadButton } from '../buttons/UploadButton' import { GiphySearch } from './GiphySearch' import { useTypebot } from 'contexts/TypebotContext' import { useDebounce } from 'use-debounce' type Props = { url?: string onSubmit: (url: string) => void isGiphyEnabled?: boolean } export const ImageUploadContent = ({ url, onSubmit, isGiphyEnabled = true, }: Props) => { const [currentTab, setCurrentTab] = useState<'link' | 'upload' | 'giphy'>( 'upload' ) const handleSubmit = (url: string) => onSubmit(url) return ( {isGiphyEnabled && ( )} ) } const BodyContent = ({ tab, url, onSubmit, }: { tab: 'upload' | 'link' | 'giphy' url?: string onSubmit: (url: string) => void }) => { switch (tab) { case 'upload': return case 'link': return case 'giphy': return } } type ContentProps = { initialUrl?: string; onNewUrl: (url: string) => void } const UploadFileContent = ({ onNewUrl }: ContentProps) => { const { typebot } = useTypebot() return ( Choose an image ) } const EmbedLinkContent = ({ initialUrl, onNewUrl }: ContentProps) => { const [imageUrl, setImageUrl] = useState(initialUrl ?? '') const [debouncedImageUrl] = useDebounce(imageUrl, 100) useEffect(() => { if (initialUrl === debouncedImageUrl) return onNewUrl(imageUrl) // eslint-disable-next-line react-hooks/exhaustive-deps }, [debouncedImageUrl]) const handleImageUrlChange = (e: ChangeEvent) => setImageUrl(e.target.value) return ( ) } const GiphyContent = ({ onNewUrl }: ContentProps) => { if (!process.env.NEXT_PUBLIC_GIPHY_API_KEY) return NEXT_PUBLIC_GIPHY_API_KEY is missing in environment return ( ) }