diff --git a/.vscode/settings.json b/.vscode/settings.json index c1c068c..1dc93b2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,13 +14,9 @@ ], "eslint.workingDirectories": [ { - "mode": "auto", + "mode": "auto" } ], - "cSpell.words": [ - "kakao", - "signup", - "webp" - ], + "cSpell.words": ["kakao", "signup", "webp"], "editor.tabSize": 2 } diff --git a/apps/client/src/apis/axios.ts b/apps/client/src/apis/axios.ts index 3d6e249..ba13f43 100644 --- a/apps/client/src/apis/axios.ts +++ b/apps/client/src/apis/axios.ts @@ -1,4 +1,4 @@ -import axios, { AxiosError } from 'axios'; +import axios, { AxiosError } from "axios"; const axiosInstance = axios.create({ baseURL: process.env.SERVER_URL, @@ -6,26 +6,29 @@ const axiosInstance = axios.create({ }); axiosInstance.interceptors.response.use( - response => { + (response) => { return response; }, - async error => { + async (error) => { const customError = error as AxiosError; const axiosError = customError.response?.status as number; - // 401 에러 응답 (인가 미들웨어에서 모든 토큰이 만료되었을때 401 리턴 -> 로그인 유도) - if ((axiosError === 401) && (window.location.pathname !== '/')) { - if (/^\/cake\/[^/]+$/.test(window.location.pathname)) { + if (axiosError === 401 && window.location.pathname !== "/") { + if ( + /^\/cake\/[^/]+$/.test(window.location.pathname) || + /^\/letter\/choose\/[^/]+$/.test(window.location.pathname) || + /^\/letter\/create\/[^/]+$/.test(window.location.pathname) + ) { return Promise.reject(error); } - window.location.replace('/'); + window.location.replace("/"); return Promise.reject(error); } // 500 에러 응답 if (axiosError === 500) { - console.log('서버 오류'); + console.log("서버 오류"); return Promise.reject(error); } @@ -35,8 +38,7 @@ axiosInstance.interceptors.response.use( } return Promise.reject(error); - }, + } ); - export default axiosInstance; diff --git a/apps/client/src/components/cake/CakeInfo.tsx b/apps/client/src/components/cake/CakeInfo.tsx index cc07ced..2f97461 100644 --- a/apps/client/src/components/cake/CakeInfo.tsx +++ b/apps/client/src/components/cake/CakeInfo.tsx @@ -21,7 +21,6 @@ import { useQueryClient } from '@tanstack/react-query'; import { useGetCakeLetters } from '#apis/cake/useGetCakeLetters.tsx'; import { useGetLetter } from '#apis/letter/useGetLetter.tsx'; - interface CakeInfoProps { year: string; sheetColor: CakeColorType | null; @@ -55,7 +54,11 @@ const CakeInfo: React.FC = ({ totalPage: 1, }); const queryClient = useQueryClient(); - const { data: cakeLettersData } = useGetCakeLetters(ownerId!, year, pageData.currentPage); + const { data: cakeLettersData } = useGetCakeLetters( + ownerId!, + year, + pageData.currentPage + ); const { data: letterData } = useGetLetter(selectedLetterId!); useEffect(() => { @@ -68,7 +71,8 @@ const CakeInfo: React.FC = ({ setCakeData(result.data); setPageData({ currentPage: result.currentPage, - totalPage: result.totalPage === 0 ? result.totalPage + 1 : result.totalPage, + totalPage: + result.totalPage === 0 ? result.totalPage + 1 : result.totalPage, }); } }, [cakeLettersData]); @@ -128,8 +132,10 @@ const CakeInfo: React.FC = ({ keyword={selectedItem?.keyword ?? ''} /> )} - - 편지 내용은 생일 이후에 확인할 수 있어요!{'\n'}두근두근...👉👈 + setOpen(false)}> + + 편지 내용은 생일 이후에 확인할 수 있어요!{'\n'}두근두근...👉👈 + - - - 편지를 작성하면 포인트를 얻을 수 있어요.{'\n'}로그인 하시겠어요? + setOpen(false)}> + + 편지를 작성하면 포인트를 얻을 수 있어요.{'\n'}로그인 하시겠어요? + @@ -87,4 +87,4 @@ const ShareBox = styled.div` justify-content: center; align-items: center; gap: 24px; -` +`; diff --git a/apps/client/src/pages/ChooseCandle.tsx b/apps/client/src/pages/ChooseCandle.tsx index 395ee3c..f7cc477 100644 --- a/apps/client/src/pages/ChooseCandle.tsx +++ b/apps/client/src/pages/ChooseCandle.tsx @@ -48,7 +48,7 @@ const ChooseCandle = () => { try { // 선택한 장식초 정보 가져오기 const candleResponse = await axiosInstance.get( - `/candle/${candleId}`, + `/candle/${candleId}` ); if (candleResponse.status === 200) { const data = CandleType.parse(candleResponse.data); @@ -118,7 +118,7 @@ const ChooseCandle = () => { if (candle.point === 0) { // 무료 장식초: 편지 페이지로 이동 navigate( - `/letter/create/${ownerId}?candleId=${candle.candleId}`, + `/letter/create/${ownerId}?candleId=${candle.candleId}` ); } else { // 유료 장식초: 결제 혹은 로그인 유도 모달 띄우기 @@ -135,15 +135,15 @@ const ChooseCandle = () => { ))} - + {candle?.candleId.toString()} -

해당 장식초를 구매하시겠습니까?

+ 남은 포인트: {userPoint}P - 결제 포인트: {candle?.point}P + 결제 포인트: {candle?.point}P {!isEnoughPoint && ( 포인트가 부족합니다. )} @@ -155,11 +155,7 @@ const ChooseCandle = () => { gap: '1rem', }} > -
- + setOpenSuccess(false)}> {candle?.candleId.toString()} -

장식초 구매가 완료되었습니다.

- 남은 포인트: {userPoint}P + + 남은 포인트: {userPoint}P