diff --git a/src/api/application.ts b/src/api/application.ts index 2a8f013a..578eb944 100644 --- a/src/api/application.ts +++ b/src/api/application.ts @@ -71,6 +71,14 @@ export const patchInterviewFinish = async (id: number) => { return response.data; }; +// 6.12 (유학생) 서류 작성 완료하기 +export const patchWritingDocumentFinish = async (id: number) => { + const response = await api.patch( + `/users/user-owner-job-postings/${id}/step-filling-out-documents`, + ); + return response.data; +}; + // 6.13 (유학생) 유학생 담당자 검토 완료 export const patchContactCoordinator = async (id: number) => { const response = await api.patch( diff --git a/src/components/ApplicationDetail/ApplicationDetailStep7.tsx b/src/components/ApplicationDetail/ApplicationDetailStep7.tsx index a67f5bc9..9aaa734f 100644 --- a/src/components/ApplicationDetail/ApplicationDetailStep7.tsx +++ b/src/components/ApplicationDetail/ApplicationDetailStep7.tsx @@ -1,6 +1,6 @@ import { buttonTypeKeys } from '@/constants/components'; import Button from '@/components/Common/Button'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate, useParams } from 'react-router-dom'; import { ApplicationStepType } from '@/types/application/applicationItem'; import { APPLICATION_STEP } from '@/constants/application'; @@ -10,6 +10,8 @@ type ApplicationDetailStep7Props = { const ApplicationDetailStep7 = ({ result }: ApplicationDetailStep7Props) => { const navigate = useNavigate(); + const { id } = useParams(); + return (
@@ -27,7 +29,7 @@ const ApplicationDetailStep7 = ({ result }: ApplicationDetailStep7Props) => { fontColor="text-[#F4F4F9]" isBorder={false} title="Check the application documents" - onClick={() => navigate('/application-documents')} + onClick={() => navigate(`/application-documents/${id}`)} />
); diff --git a/src/hooks/api/useApplication.ts b/src/hooks/api/useApplication.ts index 8d5159d9..30f0c892 100644 --- a/src/hooks/api/useApplication.ts +++ b/src/hooks/api/useApplication.ts @@ -11,6 +11,7 @@ import { patchContactCoordinator, patchApplyHiKorea, patchHiKoreaResult, + patchWritingDocumentFinish, } from '@/api/application'; import { useMutation, useQuery } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; @@ -99,6 +100,20 @@ export const usePatchInterviewFinish = () => { }); }; +// 6.12 (유학생) 서류 작성 완료하기 훅 +export const usePatchWritingDocumentFinish = (id: number) => { + const navigate = useNavigate(); + return useMutation({ + mutationFn: patchWritingDocumentFinish, + onSuccess: () => { + navigate(`/application/${id}`); + }, + onError: (error) => { + console.error('서류 작성 완료하기 실패', error); + }, + }); +}; + // 6.13 (유학생) 유학생 담당자 검토 완료 훅 export const usePatchContactCoordinator = () => { return useMutation({ diff --git a/src/pages/ApplicationDocuments/ApplicationDocumentsPage.tsx b/src/pages/ApplicationDocuments/ApplicationDocumentsPage.tsx index c8945a3b..c38a9388 100644 --- a/src/pages/ApplicationDocuments/ApplicationDocumentsPage.tsx +++ b/src/pages/ApplicationDocuments/ApplicationDocumentsPage.tsx @@ -2,6 +2,7 @@ import BottomButtonPanel from '@/components/Common/BottomButtonPanel'; import Button from '@/components/Common/Button'; import BaseHeader from '@/components/Common/Header/BaseHeader'; import DocumentCardList from '@/components/Document/DocumentCardList'; +import { usePatchWritingDocumentFinish } from '@/hooks/api/useApplication'; import { useGetDocumentsEmployee } from '@/hooks/api/useDocument'; import { useCurrentPostIdEmployeeStore } from '@/store/url'; import { DocumentsSummaryResponse } from '@/types/api/document'; @@ -11,6 +12,9 @@ const ApplicationDocumentsPage = () => { const navigate = useNavigate(); const { currentPostId } = useCurrentPostIdEmployeeStore(); const { data, isPending } = useGetDocumentsEmployee(Number(currentPostId)); + const { mutate: submitDocuments } = usePatchWritingDocumentFinish( + Number(currentPostId), + ); return (
{ documents={data?.data as DocumentsSummaryResponse} /> -