diff --git a/src/api/auth.ts b/src/api/auth.ts index 1060d4c..2ec6c98 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -4,10 +4,12 @@ import { getUrl } from "./url"; export type Me = { customer_name: string; customer_name_kana: string; + customer_name_kana_hankaku: string; email: string; zip_code: string; address: string; phone_no: string; + customer_code: string; }; type MeResponse = { diff --git a/src/api/customer.ts b/src/api/customer.ts index df6827a..30afd27 100644 --- a/src/api/customer.ts +++ b/src/api/customer.ts @@ -1,4 +1,5 @@ -import { ApiId, HttpMethod, makeFormData, makeParam, request } from "api"; +import { Dictionary } from "@types"; +import { APICommonResponse, ApiId, HttpMethod, makeParam, request } from "api"; import { getUrl } from "./url"; // -------Email変更手続き開始--------------- @@ -49,3 +50,18 @@ export const orderCustomerInfoUpdate = async ( }); return res; }; + +// -------利用者情報変更申請--------------- +export type GetRegisterBankAccountStartParamResponse = { + data: { + url: string; + param: Dictionary; + }; +} & APICommonResponse; +export const getRegisterBankAccountStartParam = async () => { + const res = await request({ + url: getUrl(ApiId.CUSTOMER_REGISTER_BANK_ACCOUNT_START_PARAM), + method: HttpMethod.GET, + }); + return res; +}; diff --git a/src/api/index.ts b/src/api/index.ts index 9827710..cef86bc 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -39,6 +39,7 @@ export const ApiId = { START_CHANGE_EMAIL: id++, VERIFY_CHANGE_EMAIL: id++, CUSTOMER_UPDATE_INFO_ORDER: id++, + CUSTOMER_REGISTER_BANK_ACCOUNT_START_PARAM: id++, } as const; export type ApiId = (typeof ApiId)[keyof typeof ApiId]; diff --git a/src/api/url.ts b/src/api/url.ts index e4bf298..d490f58 100644 --- a/src/api/url.ts +++ b/src/api/url.ts @@ -34,6 +34,8 @@ const urls = { [A.START_CHANGE_EMAIL]: "email/change/start", [A.VERIFY_CHANGE_EMAIL]: "email/change/verify", [A.CUSTOMER_UPDATE_INFO_ORDER]: "customer/update-info-order", + [A.CUSTOMER_REGISTER_BANK_ACCOUNT_START_PARAM]: + "customer/bank-account-register/start", }; const prefixs = { diff --git a/src/pages/dashboard/user/bank-register.tsx b/src/pages/dashboard/user/bank-register.tsx new file mode 100644 index 0000000..253bebf --- /dev/null +++ b/src/pages/dashboard/user/bank-register.tsx @@ -0,0 +1,77 @@ +import { Box, Button, Stack, Typography } from "@mui/material"; +import { Dictionary } from "@types"; +import { getRegisterBankAccountStartParam } from "api/customer"; +import useAPICall from "hooks/useAPICall"; +import useAuth from "hooks/useAuth"; +import useDashboard from "hooks/useDashBoard"; +import { get } from "lodash"; +import { PageID, TabID } from "pages"; +import { useEffect, useState } from "react"; + +export default function BankRegister() { + const { setHeaderTitle, setTabs } = useDashboard( + PageID.DASHBOARD_USER_BANK_REGISTER, + TabID.NONE + ); + const { user, authenticated } = useAuth(); + + const [url, setUrl] = useState(""); + const [param, setParam] = useState({}); + + const { callAPI: callGetRegisterBankAccountStartParam } = useAPICall({ + apiMethod: getRegisterBankAccountStartParam, + backDrop: true, + onSuccess: ({ data }) => { + setParam(data.param); + setUrl(data.url); + }, + }); + + useEffect(() => { + if (authenticated) { + callGetRegisterBankAccountStartParam({}); + } + }, [authenticated]); + + useEffect(() => { + setHeaderTitle("口座情報登録"); + setTabs(null); + }, []); + + if (!user) return null; + + return ( + + + +
+ {Object.keys(param).map((name, index) => { + const value: string = get(param, name); + return ( + + ); + })} + + +
+
+ + + *遷移先でエラーが発生する場合、ご利用者様の登録情報に不備がある可能性があります。 + 登録済みの氏名、氏名カナをご確認ください。 + + + *それでも解決しない場合は、恐れ入りますがお問い合わせください。 + + +
+
+ ); +} diff --git a/src/pages/dashboard/user/detail.tsx b/src/pages/dashboard/user/detail.tsx index 84f5f66..ac74196 100644 --- a/src/pages/dashboard/user/detail.tsx +++ b/src/pages/dashboard/user/detail.tsx @@ -47,7 +47,14 @@ export default function UserDetail() { - + diff --git a/src/pages/index.ts b/src/pages/index.ts index a189e55..f6061d7 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -29,6 +29,7 @@ export const PageID = { DASHBOARD_ASK: id++, DASHBOARD_USER_CHANGE_EMAIL_START: id++, DASHBOARD_USER_UPDATE_USER_INFO: id++, + DASHBOARD_USER_BANK_REGISTER: id++, PAGE_403: id++, PAGE_404: id++, diff --git a/src/providers/CsrfTokenProvider.tsx b/src/providers/CsrfTokenProvider.tsx index 1b208ae..dce8ee4 100644 --- a/src/providers/CsrfTokenProvider.tsx +++ b/src/providers/CsrfTokenProvider.tsx @@ -9,7 +9,7 @@ function CsrfTokenProvider() { setDone(true); csrfToken(); } - }, []); + }, [done]); return null; } diff --git a/src/routes/path.ts b/src/routes/path.ts index c1eb05e..2102069 100644 --- a/src/routes/path.ts +++ b/src/routes/path.ts @@ -64,6 +64,8 @@ const PATHS_DASHBOARD = { "/dashboard/change/email/start", [makePathKey(PageID.DASHBOARD_USER_UPDATE_USER_INFO)]: "/dashboard/update/user/info", + [makePathKey(PageID.DASHBOARD_USER_BANK_REGISTER)]: + "/dashboard/update/user/back-register", }; const PATHS = { diff --git a/src/routes/sub/dashboard.tsx b/src/routes/sub/dashboard.tsx index 9acae3d..84a2bde 100644 --- a/src/routes/sub/dashboard.tsx +++ b/src/routes/sub/dashboard.tsx @@ -31,6 +31,9 @@ export default function DashboardRoutes(): RouteObject[] { const UpdateUserInfo = Loadable( lazy(() => import("pages/dashboard/user/update-user-info")) ); + const BankRegister = Loadable( + lazy(() => import("pages/dashboard/user/bank-register")) + ); const allChildren = [ { @@ -62,6 +65,10 @@ export default function DashboardRoutes(): RouteObject[] { pageId: PageID.DASHBOARD_USER_UPDATE_USER_INFO, element: , }, + { + pageId: PageID.DASHBOARD_USER_BANK_REGISTER, + element: , + }, ]; return allChildren.map(({ pageId, ...others }) => ({ ...others,