diff --git a/src/apis/client.ts b/src/apis/client.ts
index 04b37c4..1a4f1e2 100644
--- a/src/apis/client.ts
+++ b/src/apis/client.ts
@@ -31,13 +31,24 @@ const processQueue = (error: unknown, token: string | null = null) => {
failedQueue = [];
};
+const callReissue = async () => {
+ try {
+ const response = await getNewToken();
+ const newToken = response?.data.accessToken;
+ return newToken;
+ } catch (e) {
+ return Promise.reject(e);
+ }
+};
+
client.interceptors.request.use(
(config) => {
+ console.log('response again', config);
+
const accessToken = useAuthStore.getState().accessToken;
if (config.url !== '/auth/reissue' && accessToken) {
config.headers.Authorization = `Bearer ${accessToken}`;
}
-
return config;
},
(error) => Promise.reject(error),
@@ -48,14 +59,12 @@ client.interceptors.response.use(
async (error) => {
const setAccessToken = useAuthStore.getState().setAccessToken;
const logout = useAuthStore.getState().logout;
- const originalRequest = error.config;
+ const isLoggedIn = useAuthStore.getState().isLoggedIn;
- if (!originalRequest) return Promise.reject(error);
+ const originalRequest = error.config;
- if (
- originalRequest.url === '/auth/reissue' ||
- originalRequest.url.includes('/api/auth/token?state=')
- ) {
+ if (!originalRequest || originalRequest.url === '/auth/reissue') {
+ if (isLoggedIn) logout();
return Promise.reject(error);
}
@@ -79,27 +88,21 @@ client.interceptors.response.use(
} catch (e) {
return Promise.reject(e);
}
- }
-
- isRefreshing = true;
-
- try {
- const response = await getNewToken();
- const newToken = response?.data.accessToken;
-
- if (!newToken) throw new Error('Failed to refresh token');
-
- setAccessToken(newToken);
- processQueue(null, newToken);
-
- isRefreshing = false;
- originalRequest.headers.Authorization = `Bearer ${newToken}`;
- return client(originalRequest);
- } catch (e) {
- processQueue(e, null);
- isRefreshing = false;
- logout();
- return Promise.reject(e);
+ } else {
+ isRefreshing = true;
+ try {
+ const newToken = await callReissue();
+ setAccessToken(newToken);
+ processQueue(null, newToken);
+ isRefreshing = false;
+ originalRequest.headers.Authorization = `Bearer ${newToken}`;
+ return client(originalRequest);
+ } catch (e) {
+ processQueue(e, null);
+ isRefreshing = false;
+ if (isLoggedIn) logout();
+ return Promise.reject(e);
+ }
}
}
return Promise.reject(error);
diff --git a/src/apis/mailBox.ts b/src/apis/mailBox.ts
index 7990b34..722e248 100644
--- a/src/apis/mailBox.ts
+++ b/src/apis/mailBox.ts
@@ -12,8 +12,7 @@ export const getMailbox = async () => {
export const getMailboxDetail = async (id: number, pageParam: number) => {
try {
- const response = await client.get(`/api/mailbox/${id}?page=${pageParam}&size=20`);
- // const response = await client.get(`/api/mailbox/${id}`);
+ const response = await client.get(`/api/mailbox/${id}/detail?page=${pageParam}&size=20`);
if (!response) throw new Error('error while fetching mailbox detail data');
return response.data;
diff --git a/src/main.tsx b/src/main.tsx
index 41bea78..8b87556 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -21,5 +21,5 @@ createRoot(document.getElementById('root')!).render(
,
- // ,
+ //
);
diff --git a/src/pages/LetterBox/index.tsx b/src/pages/LetterBox/index.tsx
index 892cb3e..c8010c9 100644
--- a/src/pages/LetterBox/index.tsx
+++ b/src/pages/LetterBox/index.tsx
@@ -21,6 +21,7 @@ const fetchMailLists = async () => {
const response = await getMailbox();
if (!response) throw new Error();
const data: LetterBoxData[] = response.data;
+ console.log(data);
// 정렬?
return data;
};
@@ -63,7 +64,7 @@ const LetterBoxPage = () => {
zipCode={data.oppositeZipCode}
letterCount={data.letterCount}
isChecked={data.oppositeRead}
- isClosed={data.active}
+ isClosed={!data.active}
/>
)),
).map((row, index) =>
diff --git a/src/pages/LetterBoxDetail/components/LetterPreview.tsx b/src/pages/LetterBoxDetail/components/LetterPreview.tsx
index 98967fc..ac4f843 100644
--- a/src/pages/LetterBoxDetail/components/LetterPreview.tsx
+++ b/src/pages/LetterBoxDetail/components/LetterPreview.tsx
@@ -61,7 +61,7 @@ const LetterPreview = forwardRef((props, ref
return (
handleItemClick(id)} ref={ref}>
- {date}
+ {formatDate(date)}
{title}
);
diff --git a/src/pages/LetterBoxDetail/index.tsx b/src/pages/LetterBoxDetail/index.tsx
index 7baea17..e2b7097 100644
--- a/src/pages/LetterBoxDetail/index.tsx
+++ b/src/pages/LetterBoxDetail/index.tsx
@@ -35,7 +35,7 @@ const LetterBoxDetailPage = () => {
useInfiniteQuery({
queryKey: ['mailBoxDetail', userInfo.id],
queryFn: async ({ pageParam }) => {
- console.log(`Fetching page: ${pageParam}`); // 디버깅용
+ console.log(`Fetching page: ${pageParam}`);
const response = await getMailboxDetail(userInfo.id, pageParam);
console.log(response.data);
return response.data;
@@ -73,7 +73,7 @@ const LetterBoxDetailPage = () => {
const shareMutation = useMutation({
// Todo : useAuthStore -> myId 대체
- mutationFn: () => postShareProposals(selected, 1, userInfo.id, shareComment),
+ mutationFn: () => postShareProposals(selected, userInfo.id, shareComment),
onSuccess: () => {
toggleShareMode();
setShareComment('');
diff --git a/src/utils/formatDate.ts b/src/utils/formatDate.ts
index 6cca28d..2de211c 100644
--- a/src/utils/formatDate.ts
+++ b/src/utils/formatDate.ts
@@ -1,11 +1,12 @@
const formatDate = (isoString: string) => {
- const date = new Date(isoString);
+ const trimmedIsoString = isoString.split('.')[0];
+ const date = new Date(trimmedIsoString);
return date
.toLocaleDateString('ko-KR', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
})
- .replace(/-/g, '.');
+ .replace(/\./g, '.');
};
export default formatDate;