From ada2df4e823eeefe29d3ef306213927f6c5d6ee8 Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Thu, 5 Oct 2023 13:45:55 +0900 Subject: [PATCH] =?UTF-8?q?=E5=90=84=E8=A8=BC=E6=98=8E=E8=A8=BC=E7=94=BB?= =?UTF-8?q?=E5=83=8F=E3=81=AE=E6=9C=89=E5=8A=B9=E6=9C=9F=E9=99=90=E5=85=A5?= =?UTF-8?q?=E5=8A=9B=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/season-ticket-contract.ts | 2 ++ .../contract/upload-other-license-images.tsx | 26 ++++++++++++++----- .../upload-student-license-images.tsx | 21 +++++++++++++-- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/api/season-ticket-contract.ts b/src/api/season-ticket-contract.ts index f762023..cc3c5ea 100644 --- a/src/api/season-ticket-contract.ts +++ b/src/api/season-ticket-contract.ts @@ -198,6 +198,7 @@ export const orderChangePaymentInterval = async ( export type UploadStudentLicenseImagesRequest = { images: File[]; season_ticket_contract_record_no: string; + expires_at: string; }; export const uploadStudentLicenseImages = async ( param: UploadStudentLicenseImagesRequest @@ -216,6 +217,7 @@ export const uploadStudentLicenseImages = async ( export type OtherLicenseImagesRequest = { images: File[]; season_ticket_contract_record_no: string; + expires_at: string; }; export const uploadOtherLicenseImages = async ( param: OtherLicenseImagesRequest diff --git a/src/pages/dashboard/contract/upload-other-license-images.tsx b/src/pages/dashboard/contract/upload-other-license-images.tsx index a177abd..4065fa8 100644 --- a/src/pages/dashboard/contract/upload-other-license-images.tsx +++ b/src/pages/dashboard/contract/upload-other-license-images.tsx @@ -1,16 +1,14 @@ +import { yupResolver } from "@hookform/resolvers/yup"; import { Box, Button, Stack, Typography } from "@mui/material"; import { HasChildren } from "@types"; -import { - uploadOtherLicenseImages, - uploadStudentLicenseImages, -} from "api/season-ticket-contract"; +import { uploadOtherLicenseImages } from "api/season-ticket-contract"; import RequireChip from "components/chip/RequireChip"; import { FormProvider } from "components/hook-form"; +import RHFDatePicker from "components/hook-form/RHFDatePicker"; import { RHFUpload } from "components/hook-form/RHFUpload"; import StackRow from "components/stack/StackRow"; import { useSeasonTicketContractContext } from "contexts/dashboard/SeasonTicketContractContext"; import useAPICall from "hooks/useAPICall"; -import useAuth from "hooks/useAuth"; import useDashboard from "hooks/useDashBoard"; import useNavigateCustom from "hooks/useNavigateCustom"; import useSnackbarCustom from "hooks/useSnackbarCustom"; @@ -18,6 +16,8 @@ import { PageID, TabID } from "pages"; import { useEffect, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; import { getPath } from "routes/path"; +import { formatDateStr } from "utils/datetime"; +import { date, object } from "yup"; type AreaBoxProps = { label: string; @@ -39,6 +39,7 @@ type FormProps = { file1: File[]; file2: File[]; file3: File[]; + expires_at: Date | null; }; export default function OtherLicenseImagesUpload() { @@ -47,8 +48,8 @@ export default function OtherLicenseImagesUpload() { TabID.NONE ); - const { navigateWhenChanged, navigate } = useNavigateCustom(); - const { selectedseasonTicketContract, initialized, backToDetailHome } = + const { navigateWhenChanged } = useNavigateCustom(); + const { selectedseasonTicketContract, initialized, backToDetailHome, fetch } = useSeasonTicketContractContext(); const [done, setDone] = useState(false); @@ -59,7 +60,13 @@ export default function OtherLicenseImagesUpload() { file1: [], file2: [], file3: [], + expires_at: null, }, + resolver: yupResolver( + object().shape({ + expires_at: date().required("入力してください"), + }) + ), }); const { callAPI: callUploadOtherLicenseImages } = useAPICall({ @@ -67,6 +74,7 @@ export default function OtherLicenseImagesUpload() { backDrop: true, onSuccess: () => { setDone(true); + fetch(); }, onFailed: () => { error("失敗しました"); @@ -88,6 +96,7 @@ export default function OtherLicenseImagesUpload() { images: files, season_ticket_contract_record_no: selectedseasonTicketContract.season_ticekt_contract_record_no ?? "", + expires_at: formatDateStr(data.expires_at), }); }; @@ -160,6 +169,9 @@ export default function OtherLicenseImagesUpload() { )} + + +