import InputError from '@/components/input-error'; import LoadingButton from '@/components/loading-button'; import { Card } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { useForm, usePage } from '@inertiajs/react'; import { useState } from 'react'; import { ExamUpdateProps } from '../../update'; const Media = () => { const { props } = usePage(); const { tab, exam } = props; const [previewThumbnail, setPreviewThumbnail] = useState(exam.thumbnail); const { data, setData, post, errors, reset, processing } = useForm({ tab: tab, thumbnail: null as File | null, }); // Handle form submission const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); post(route('exams.update', { exam: exam.id }), { onSuccess() { reset(); }, }); }; return (
{ const file = e.target.files?.[0]; if (file) { setData('thumbnail', file); // Create preview const reader = new FileReader(); reader.onloadend = () => { setPreviewThumbnail(reader.result as string); }; reader.readAsDataURL(file); } }} />

Recommended size: 400x300px. Max size: 2MB

{previewThumbnail && (
Thumbnail preview
)}
Save Changes
); }; export default Media;