Skip to content

Commit 37ef5ea

Browse files
committed
✨ feat(#170): anonymousSendLetterCode 관련 로컬스토리지 함수 추가
1 parent 844b20a commit 37ef5ea

5 files changed

Lines changed: 31 additions & 3 deletions

File tree

src/app/login/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { OAUTH } from '@/constants/oauth';
66
import { sendLetterState } from '@/recoil/letterStore';
77
import { theme } from '@/styles/theme';
88
import { OAuthType } from '@/types/login';
9+
import { clearAnonymousSendLetterCode } from '@/utils/storage';
910
import { useRouter } from 'next/navigation';
1011
import { Suspense, useEffect } from 'react';
1112
import { useRecoilState } from 'recoil';
@@ -17,6 +18,7 @@ export default function Login() {
1718

1819
/* 로그인 페이지에서 편지 쓰기 store 초기화 */
1920
useEffect(() => {
21+
clearAnonymousSendLetterCode();
2022
setSendState({
2123
draftId: null,
2224
receiverName: '',

src/app/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import Loader, { LoaderContainer } from '@/components/common/Loader';
44
import { getAccessToken } from '@/utils/storage';
55
import { useRouter } from 'next/navigation';
6-
import { useEffect, useState } from 'react';
6+
import { useEffect } from 'react';
77
import styled from 'styled-components';
88

99
export default function Home() {

src/app/send/(process)/preview/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import useKakaoSDK from '@/hooks/useKakaoSDK';
1414
import { userState } from '@/recoil/userStore';
1515
import { getLetterShareStatus } from '@/api/letter/share';
1616
import Loader, { LoaderContainer } from '@/components/common/Loader';
17+
import { setAnonymousSendLetterCode } from '@/utils/storage';
1718

1819
const SendPreviewPage = () => {
1920
const router = useRouter();
@@ -96,6 +97,7 @@ const SendPreviewPage = () => {
9697
}));
9798
letterCode = response.data.letterCode;
9899
setLetterCode(response.data.letterCode);
100+
setAnonymousSendLetterCode(response.data.letterCode);
99101
} else {
100102
const response = await postSendLetter({
101103
draftId,

src/app/send/complete/page.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import OauthButton from '@/components/signup/OauthButton';
77
import { OAUTH } from '@/constants/oauth';
88
import { SEND_COMPLETE_SUBTEXT } from '@/constants/send/message';
99
import { sendLetterState } from '@/recoil/letterStore';
10-
import { float, letterFloat } from '@/styles/animation';
10+
import { letterFloat } from '@/styles/animation';
1111
import { theme } from '@/styles/theme';
1212
import { OAuthType } from '@/types/login';
13+
import { clearAnonymousSendLetterCode } from '@/utils/storage';
1314
import Image from 'next/image';
1415
import { useRouter, useSearchParams } from 'next/navigation';
1516
import React, { Suspense, useEffect, useState } from 'react';
@@ -50,11 +51,16 @@ const SendCompletePage = () => {
5051
}
5152
};
5253

54+
const handleExit = () => {
55+
router.push('/login');
56+
clearAnonymousSendLetterCode();
57+
};
58+
5359
return (
5460
<>
5561
<Layout>
5662
{isGuest && (
57-
<button onClick={() => router.push('/login')}>
63+
<button onClick={handleExit}>
5864
<CloseIcon
5965
src="/assets/icons/ic_x.svg"
6066
width={24}

src/utils/storage.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,24 @@ export const setInitUserToast = () => {
116116
}
117117
};
118118

119+
/* anonymousSendLetterCode */
120+
export const setAnonymousSendLetterCode = (anonymousSendLetterCode: string) => {
121+
if (typeof window !== 'undefined') {
122+
localStorage.setItem('letterCode', anonymousSendLetterCode);
123+
}
124+
};
125+
126+
export const getAnonymousSendLetterCode = () => {
127+
if (typeof window !== 'undefined') {
128+
return localStorage.getItem('anonymousSendLetterCode');
129+
}
130+
return null;
131+
};
132+
133+
export const clearAnonymousSendLetterCode = () => {
134+
localStorage.removeItem('anonymousSendLetterCode');
135+
};
136+
119137
export const getInitUserToast = (): string | null => {
120138
if (typeof window !== "undefined") {
121139
return sessionStorage.getItem("initUserToast");

0 commit comments

Comments
 (0)