From 9aca61c75de76d71714262811f43dd5bc452bd6b Mon Sep 17 00:00:00 2001 From: YuHyun Date: Sat, 30 Dec 2023 00:09:20 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=80=B4=EC=A6=88=20=ED=8A=9C=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=EC=96=BC=20=EC=99=84=EB=A3=8C=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=EA=B0=92=20=EB=A1=9C=EC=BB=AC=20=EC=8A=A4=ED=86=A0=EB=A6=AC?= =?UTF-8?q?=EC=A7=80=EB=A1=9C=20=EA=B4=80=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [#304] --- .../contexts/QuizCoachContext/QuizCoachProvider.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/contexts/QuizCoachContext/QuizCoachProvider.tsx b/packages/frontend/src/contexts/QuizCoachContext/QuizCoachProvider.tsx index 4fe867a5..3150b74d 100644 --- a/packages/frontend/src/contexts/QuizCoachContext/QuizCoachProvider.tsx +++ b/packages/frontend/src/contexts/QuizCoachContext/QuizCoachProvider.tsx @@ -1,7 +1,11 @@ -import { ReactNode, useCallback, useMemo, useState } from "react"; +import { ReactNode, useCallback, useEffect, useMemo, useState } from "react"; + +import { createLocalStorage } from "../../utils/webStorage"; import { QuizCoachActionContext, QuizCoachContext } from "./quizCoachContext"; +const quizTutorialEndStorage = createLocalStorage("quiz-tutorial-end", false); + interface QuizCoachProviderProps { children: ReactNode; } @@ -11,10 +15,12 @@ export function QuizCoachProvider({ children }: QuizCoachProviderProps) { const handleEnd = useCallback(() => { setRun(false); + quizTutorialEndStorage.setItem(true); }, []); const handleStart = useCallback(() => { setRun(true); + quizTutorialEndStorage.removeItem(); }, []); const quizCoachActionContextValue = useMemo( @@ -22,6 +28,11 @@ export function QuizCoachProvider({ children }: QuizCoachProviderProps) { [handleEnd, handleStart], ); + useEffect(() => { + const tutorialEnd = quizTutorialEndStorage.getItem(); + setRun(!tutorialEnd); + }, []); + return (