feat: paste images support

This commit is contained in:
zaidmukaddam 2024-09-06 19:50:24 +05:30
parent 1a3b66cca0
commit 8eb063e2f2

View File

@ -124,12 +124,11 @@ export default function Home() {
const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);
const [isEditingMessage, setIsEditingMessage] = useState(false);
const [editingMessageIndex, setEditingMessageIndex] = useState(-1);
const [files, setFiles] = useState<FileList | undefined>(undefined);
const [attachments, setAttachments] = useState<Attachment[]>([]);
const fileInputRef = useRef<HTMLInputElement>(null);
const inputRef = useRef<HTMLInputElement>(null);
const { isLoading, input, messages, setInput, handleInputChange, append, handleSubmit, setMessages } = useChat({
const { isLoading, input, messages, setInput, append, handleSubmit, setMessages } = useChat({
api: '/api/chat',
maxToolRoundtrips: 1,
onFinish: async (message, { finishReason }) => {
@ -1709,6 +1708,10 @@ export default function Home() {
e.preventDefault();
handleFileChange({ target: { files: e.dataTransfer?.files } } as React.ChangeEvent<HTMLInputElement>);
}}
onPaste={e => {
e.preventDefault();
handleFileChange({ target: { files: e.clipboardData?.files } } as React.ChangeEvent<HTMLInputElement>);
}}
className={`
${hasSubmitted ? 'fixed bottom-4 left-1/2 -translate-x-1/2 max-w-[90%] sm:max-w-2xl' : 'max-w-full'}
${attachments.length > 0 || uploadingAttachments.length > 0 ? 'rounded-2xl' : 'rounded-full'}