[resumes][fix] fix file upload error

pull/378/head
Keane Chan 3 years ago
parent 426ff74971
commit 9ed42d7bbf
No known key found for this signature in database
GPG Key ID: 32718398E1E9F87C

@ -3,7 +3,7 @@ import clsx from 'clsx';
import Head from 'next/head'; import Head from 'next/head';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import { useSession } from 'next-auth/react'; import { useSession } from 'next-auth/react';
import { useEffect, useMemo, useState } from 'react'; import { useCallback, useEffect, useMemo, useState } from 'react';
import type { FileRejection } from 'react-dropzone'; import type { FileRejection } from 'react-dropzone';
import { useDropzone } from 'react-dropzone'; import { useDropzone } from 'react-dropzone';
import type { SubmitHandler } from 'react-hook-form'; import type { SubmitHandler } from 'react-hook-form';
@ -61,10 +61,6 @@ const selectors: Array<SelectorOptions> = [
]; ];
export default function SubmitResumeForm() { export default function SubmitResumeForm() {
const { data: session, status } = useSession();
const router = useRouter();
const resumeCreateMutation = trpc.useMutation('resumes.resume.user.create');
const [resumeFile, setResumeFile] = useState<File | null>(); const [resumeFile, setResumeFile] = useState<File | null>();
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [invalidFileUploadError, setInvalidFileUploadError] = useState< const [invalidFileUploadError, setInvalidFileUploadError] = useState<
@ -72,17 +68,34 @@ export default function SubmitResumeForm() {
>(null); >(null);
const [isDialogShown, setIsDialogShown] = useState(false); const [isDialogShown, setIsDialogShown] = useState(false);
const onFileDrop = ( const { data: session, status } = useSession();
acceptedFiles: Array<File>, const router = useRouter();
fileRejections: Array<FileRejection>, const resumeCreateMutation = trpc.useMutation('resumes.resume.user.create');
) => {
const {
register,
handleSubmit,
setValue,
reset,
formState: { errors, isDirty },
} = useForm<IFormInput>({
defaultValues: {
isChecked: false,
},
});
const onFileDrop = useCallback(
(acceptedFiles: Array<File>, fileRejections: Array<FileRejection>) => {
if (fileRejections.length === 0) { if (fileRejections.length === 0) {
setInvalidFileUploadError(''); setInvalidFileUploadError('');
setResumeFile(acceptedFiles[0]); setResumeFile(acceptedFiles[0]);
setValue('file', acceptedFiles[0]);
} else { } else {
setInvalidFileUploadError(FILE_UPLOAD_ERROR); setInvalidFileUploadError(FILE_UPLOAD_ERROR);
} }
}; },
[setValue],
);
const { getRootProps, getInputProps } = useDropzone({ const { getRootProps, getInputProps } = useDropzone({
accept: { accept: {
@ -101,18 +114,6 @@ export default function SubmitResumeForm() {
} }
}, [router, session, status]); }, [router, session, status]);
const {
register,
handleSubmit,
setValue,
reset,
formState: { errors, isDirty },
} = useForm<IFormInput>({
defaultValues: {
isChecked: false,
},
});
const onSubmit: SubmitHandler<IFormInput> = async (data) => { const onSubmit: SubmitHandler<IFormInput> = async (data) => {
if (resumeFile == null) { if (resumeFile == null) {
return; return;
@ -163,6 +164,7 @@ export default function SubmitResumeForm() {
setIsDialogShown(false); setIsDialogShown(false);
reset(); reset();
setResumeFile(null); setResumeFile(null);
setInvalidFileUploadError(null);
}; };
const onClickDownload = async ( const onClickDownload = async (

Loading…
Cancel
Save