From d6cb730a55a52a70056fd1c9c03e9940b84ecfb0 Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Mon, 31 Jul 2023 15:40:14 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=82=BF=E3=83=BC=E3=83=90?= =?UTF-8?q?=E3=83=AB=E5=87=A6=E7=90=86=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/contexts/AppContext.tsx | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/contexts/AppContext.tsx b/src/contexts/AppContext.tsx index 7567f9f..27bdcb6 100644 --- a/src/contexts/AppContext.tsx +++ b/src/contexts/AppContext.tsx @@ -1,10 +1,10 @@ import { HasChildren } from "@types"; -import { checkToken } from "api/app"; +import { CheckTokenRequest, CheckTokenResponse, checkToken } from "api/app"; import { AppReceiptIssuingOrder } from "api/app/receipt-issuing-order"; import { PageID } from "codes/page"; import useAPICall from "hooks/useAPICall"; import useNavigateCustom from "hooks/useNavigateCustom"; -import { createContext, useEffect, useState } from "react"; +import { createContext, useCallback, useEffect, useState } from "react"; import { useParams } from "react-router-dom"; import { getPath } from "routes/path"; import { StoreId, getStore, setStore } from "storage/localstorage"; @@ -42,9 +42,8 @@ export function AppContextProvider({ children }: Props) { "cheking" ); - const checkTokenAPI = useAPICall({ - apiMethod: checkToken, - onSuccess: (res, sendData) => { + const handleSuccess = useCallback( + (res: CheckTokenResponse, sendData: CheckTokenRequest) => { if (receiptIssuingOrder === null) { setTokenResult("ok"); _setToken(sendData.access_token); @@ -53,11 +52,18 @@ export function AppContextProvider({ children }: Props) { // 再Fetch用 タイムスタンプが違う場合のみ取り込む const lastTimestamp = receiptIssuingOrder?.updated_at ?? ""; - if (lastTimestamp !== res.data.receipt_issuing_order.updated_at) { - console.info("発行依頼情報読込"); + const currentTimestamp = res.data.receipt_issuing_order.updated_at; + if (lastTimestamp !== currentTimestamp) { + console.log("発行依頼情報読込", { lastTimestamp, currentTimestamp }); setReceiptIssuingOrder(res.data.receipt_issuing_order); } }, + [receiptIssuingOrder] + ); + + const checkTokenAPI = useAPICall({ + apiMethod: checkToken, + onSuccess: handleSuccess, onFailed: () => { setTokenResult("ng"); navigateWhenChanged(getPath(PageID.PAGE_404)); @@ -108,7 +114,7 @@ export function AppContextProvider({ children }: Props) { clearInterval(interval); }; } - }, [token]); + }, [token, handleSuccess]); return (