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() {
)}
+
+
+