Skip to content

Commit c709bcf

Browse files
committed
refact: AuthContext에서 zustand로 변경
1 parent 01d18b9 commit c709bcf

File tree

5 files changed

+21
-38
lines changed

5 files changed

+21
-38
lines changed

src/app/provider/AuthContext.tsx

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/app/provider/authStore.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { create } from 'zustand';
2+
3+
interface AuthStore {
4+
isModalOpen: boolean;
5+
openModal: () => void;
6+
closeModal: () => void;
7+
}
8+
9+
const useAuthStore = create<AuthStore>(set => ({
10+
isModalOpen: false,
11+
openModal: () => set({ isModalOpen: true }),
12+
closeModal: () => set({ isModalOpen: false }),
13+
}));
14+
15+
export default useAuthStore;

src/main.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@ import { RouterProvider } from 'react-router-dom';
44
import router from './app/routes/Router';
55
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
66
import './index.css';
7-
import { AuthProvider } from './app/provider/AuthContext';
87

98
const queryClient = new QueryClient();
109

1110
createRoot(document.getElementById('root')!).render(
1211
<StrictMode>
1312
<QueryClientProvider client={queryClient}>
14-
<AuthProvider>
15-
<RouterProvider router={router} />
16-
</AuthProvider>
13+
<RouterProvider router={router} />
1714
</QueryClientProvider>
1815
</StrictMode>
1916
);

src/pages/home/ui/MainPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import leftButton from '../../../../public/assets/main/LeftButton.svg';
1818
import { AnimatePresence } from 'framer-motion';
1919
import LoginModal from '../../../widgets/main/ui/LoginModal';
2020
import { cardButtons } from '../../../shared/types/mainCardButtonType';
21-
import { useAuth } from '../../../app/provider/AuthContext';
21+
import useAuthStore from '../../../app/provider/authStore';
2222

2323
const MainPage = () => {
2424
const images = [
@@ -32,7 +32,7 @@ const MainPage = () => {
3232
const [closingStartIndex, setClosingStartIndex] = useState<number>(0);
3333
const maxCardsToShow = 2;
3434
const navigate = useNavigate();
35-
const { isModalOpen, openModal, closeModal } = useAuth();
35+
const { isModalOpen, openModal, closeModal } = useAuthStore();
3636

3737
type SetStartIndex = Dispatch<SetStateAction<number>>;
3838

src/shared/types/api/http-client.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import axios, { AxiosError, AxiosResponse } from 'axios';
22
import { ApiErrorResponse } from './apiResponse';
33
import Cookies from 'js-cookie';
4+
import useAuthStore from '../../../app/provider/authStore';
45

56
export const axiosClient = axios.create({
67
baseURL: 'http://ec2-3-35-48-123.ap-northeast-2.compute.amazonaws.com:8080/api/v1',
@@ -43,9 +44,8 @@ axiosClient.interceptors.response.use(
4344
// 401(토큰 만료)일 경우 로그아웃 처리 or 토큰 갱신 가능
4445
if (errorInfo.status === 401) {
4546
Cookies.remove('access_token');
46-
import('../../../app/provider/AuthContext').then(({ useAuth }) => {
47-
useAuth().openModal();
48-
});
47+
48+
useAuthStore.getState().openModal();
4949
}
5050

5151
return Promise.reject(errorInfo);

0 commit comments

Comments
 (0)