| import React, { useState, ChangeEvent } from 'react'; |
| import { Button, Dialog, DialogContent, DialogHeader, DialogTitle, Input } from '@librechat/client'; |
| import { useLocalize } from '~/hooks'; |
| import { cn } from '~/utils'; |
|
|
| const UploadFileModal = ({ open, onOpenChange }) => { |
| const localize = useLocalize(); |
| const [file, setFile] = useState<File | null>(null); |
|
|
| const handleFileChange = (e: ChangeEvent<HTMLInputElement>) => { |
| if (e.target.files && e.target.files.length > 0) { |
| const selectedFile = e.target.files[0]; |
| setFile(selectedFile); |
| } |
| }; |
|
|
| return ( |
| <Dialog open={open} onOpenChange={onOpenChange}> |
| <DialogContent |
| className={cn( |
| 'w-11/12 overflow-x-auto p-3 shadow-2xl dark:bg-gray-700 dark:text-white lg:w-2/3 xl:w-2/5', |
| )} |
| > |
| <DialogHeader> |
| <DialogTitle className="text-lg font-medium leading-6 text-gray-900 dark:text-gray-200"> |
| Upoad a File |
| </DialogTitle> |
| </DialogHeader> |
| <div className="flex w-full flex-col p-0 sm:p-6 sm:pb-0 sm:pt-4"> |
| <div className="flex w-full flex-row"> |
| <div className="hidden w-1/5 sm:block"> |
| <img /> |
| </div> |
| <div className="flex w-full flex-col text-center sm:w-4/5 sm:text-left"> |
| <div className="italic">Please upload square file, size less than 100KB</div> |
| <div className="mt-4 flex w-full flex-row items-center bg-[#f9f9f9] p-2"> |
| <div className="w-1/2 sm:w-1/3"> |
| <Button>Choose File</Button> |
| </div> |
| <div className="w-1/2 sm:w-1/3"> No File Chosen</div> |
| </div> |
| </div> |
| </div> |
| <div className="mt-3 flex w-full flex-col"> |
| <label htmlFor="name">Name</label> |
| <label className="hidden text-[#808080] sm:block">The name of the uploaded file</label> |
| <Input type="text" id="name" name="name" placeholder="Name" /> |
| </div> |
| |
| <div className="mt-3 flex w-full flex-col"> |
| <label htmlFor="purpose">Purpose</label> |
| <label className="hidden text-[#808080] sm:block"> |
| The purpose of the uploaded file |
| </label> |
| <Input type="text" id="purpose" name="purpose" placeholder="Purpose" /> |
| </div> |
| |
| <div className="mt-3 flex w-full flex-row justify-between"> |
| <div className="hidden w-1/3 sm:block"> |
| <span className="font-bold">Learn about file purpose</span> |
| </div> |
| <div className="flex w-full flex-row justify-evenly sm:w-1/3"> |
| <Button |
| className="mr-3 w-full rounded-md border border-black bg-white p-0 text-black hover:bg-white" |
| onClick={() => { |
| onOpenChange(false); |
| }} |
| > |
| Cancel |
| </Button> |
| <Button |
| className="w-full rounded-md border border-black bg-black p-0 text-white" |
| onClick={() => { |
| console.log('upload file'); |
| }} |
| > |
| Upload |
| </Button> |
| </div> |
| </div> |
| </div> |
| </DialogContent> |
| </Dialog> |
| ); |
| }; |
|
|
| export default UploadFileModal; |
|
|