import { useMemo, useState } from 'react'; import { FileUploader } from '@/components/file-uploader'; import message from '@/components/ui/message'; import { Textarea } from '@/components/ui/textarea'; import { FileMimeType } from '@/constants/common'; type GoogleDriveTokenFieldProps = { value?: string; onChange: (value: any) => void; placeholder?: string; }; const GoogleDriveTokenField = ({ value, onChange, placeholder, }: GoogleDriveTokenFieldProps) => { const [files, setFiles] = useState([]); const handleValueChange = useMemo( () => (nextFiles: File[]) => { if (!nextFiles.length) { setFiles([]); return; } const file = nextFiles[nextFiles.length - 1]; file .text() .then((text) => { JSON.parse(text); onChange(text); setFiles([file]); message.success('JSON uploaded'); }) .catch(() => { message.error('Invalid JSON file.'); setFiles([]); }); }, [onChange], ); return (