import { ACCEPTED_FILE_TYPES } from "@/components/chat/chat-hooks/use-select-file-handler" import { SidebarCreateItem } from "@/components/sidebar/items/all/sidebar-create-item" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { ChatbotUIContext } from "@/context/context" import { FILE_DESCRIPTION_MAX, FILE_NAME_MAX } from "@/db/limits" import { TablesInsert } from "@/supabase/types" import { FC, useContext, useState } from "react" interface CreateFileProps { isOpen: boolean onOpenChange: (isOpen: boolean) => void } export const CreateFile: FC = ({ isOpen, onOpenChange }) => { const { profile, selectedWorkspace } = useContext(ChatbotUIContext) const [name, setName] = useState("") const [isTyping, setIsTyping] = useState(false) const [description, setDescription] = useState("") const [selectedFile, setSelectedFile] = useState(null) const handleSelectedFile = async (e: React.ChangeEvent) => { if (!e.target.files) return const file = e.target.files[0] if (!file) return setSelectedFile(file) const fileNameWithoutExtension = file.name.split(".").slice(0, -1).join(".") setName(fileNameWithoutExtension) } if (!profile) return null if (!selectedWorkspace) return null return ( } isOpen={isOpen} isTyping={isTyping} onOpenChange={onOpenChange} renderInputs={() => ( <>
setName(e.target.value)} maxLength={FILE_NAME_MAX} />
setDescription(e.target.value)} maxLength={FILE_DESCRIPTION_MAX} />
)} /> ) }