import { ChangeEvent, useState } from 'react' import { Button, Flex, HStack, Stack, Text, Input as ClassicInput, SimpleGrid, GridItem, } 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 { BaseEmoji, emojiIndex } from 'emoji-mart' import { emojis } from './emojis' import { Input } from '../Textbox/Input' type Props = { url?: string isEmojiEnabled?: boolean isGiphyEnabled?: boolean onSubmit: (url: string) => void onClose?: () => void } export const ImageUploadContent = ({ url, onSubmit, isEmojiEnabled = false, isGiphyEnabled = true, onClose, }: Props) => { const [currentTab, setCurrentTab] = useState< 'link' | 'upload' | 'giphy' | 'emoji' >(isEmojiEnabled ? 'emoji' : 'upload') const handleSubmit = (url: string) => { onSubmit(url) onClose && onClose() } return ( {isEmojiEnabled && ( )} {isGiphyEnabled && ( )} ) } const BodyContent = ({ tab, url, onSubmit, }: { tab: 'upload' | 'link' | 'giphy' | 'emoji' url?: string onSubmit: (url: string) => void }) => { switch (tab) { case 'upload': return case 'link': return case 'giphy': return case 'emoji': 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 EmojiContent = ({ onEmojiSelected, }: { onEmojiSelected: (emoji: string) => void }) => { const [searchValue, setSearchValue] = useState('') const [filteredEmojis, setFilteredEmojis] = useState(emojis) const handleEmojiClick = (emoji: string) => () => onEmojiSelected(emoji) const handleSearchChange = (e: ChangeEvent) => { setSearchValue(e.target.value) setFilteredEmojis( emojiIndex.search(e.target.value)?.map((o) => (o as BaseEmoji).native) ?? emojis ) } return ( {filteredEmojis.map((emoji) => ( ))} ) } const GiphyContent = ({ onNewUrl }: ContentProps) => { if (!process.env.NEXT_PUBLIC_GIPHY_API_KEY) return NEXT_PUBLIC_GIPHY_API_KEY is missing in environment return ( ) }