import { useState } from 'react' import { Button, Flex, HStack, Stack } from '@chakra-ui/react' import { UploadButton } from '../buttons/UploadButton' import { GiphySearchForm } from './GiphySearchForm' import { Input } from '../Textbox/Input' import { EmojiSearchableList } from './emoji/EmojiSearchableList' type Props = { filePath: string includeFileName?: boolean defaultUrl?: string isEmojiEnabled?: boolean isGiphyEnabled?: boolean onSubmit: (url: string) => void onClose?: () => void } export const ImageUploadContent = ({ filePath, includeFileName, defaultUrl, 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 = ({ includeFileName, filePath, tab, defaultUrl, onSubmit, }: { includeFileName?: boolean filePath: string tab: 'upload' | 'link' | 'giphy' | 'emoji' defaultUrl?: string onSubmit: (url: string) => void }) => { switch (tab) { case 'upload': return ( ) case 'link': return case 'giphy': return case 'emoji': return } } type ContentProps = { onNewUrl: (url: string) => void } const UploadFileContent = ({ filePath, includeFileName, onNewUrl, }: ContentProps & { filePath: string; includeFileName?: boolean }) => ( Choose an image ) const EmbedLinkContent = ({ defaultUrl, onNewUrl, }: ContentProps & { defaultUrl?: string }) => ( ) const GiphyContent = ({ onNewUrl }: ContentProps) => ( )