import { ChangeEvent, useEffect, useRef, useState } from "react"; import { Box, Button, Typography } from "@mui/material"; import type { QuizQuestionFile, UploadFileType, } from "@model/questionTypes/file"; const UPLOAD_FILE_TYPES_MAP: Record = { picture: "image/*", video: "video/*", audio: "audio/*", document: ".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.pdf", } as const; interface Props { question: QuizQuestionFile; } export default function File({ question }: Props) { const fileInputRef = useRef(null); const [file, setFile] = useState(null); const [acceptedType, setAcceptedType] = useState( UPLOAD_FILE_TYPES_MAP.picture ); useEffect(() => { setAcceptedType(UPLOAD_FILE_TYPES_MAP[question.content.type]); }, [question.content.type]); function handleFileChange(event: ChangeEvent) { if (!event.target.files?.[0]) return setFile(null); setFile(event.target.files[0]); } return ( {question.title} {file && Выбран файл: {file.name}} ); }