diff --git a/package.json b/package.json
index eadb499..30d4e32 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"react-dom": "^18",
"react-hook-form": "^7.52.2",
"react-redux": "^9.1.2",
+ "redux-persist": "^6.0.0",
"sass": "^1.77.8",
"zod": "^3.23.8"
},
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 977e82e..21b9b8f 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -4,7 +4,8 @@ import { ThemeProvider } from "@mui/material/styles";
import theme from "../theme";
import "./globals.scss";
import { Provider } from 'react-redux';
-import store from "@/services/store";
+import { PersistGate } from 'redux-persist/integration/react';
+import { store, persistor } from '.././services/store';
import AuthGuard from "@/hoc/authGuard/authGuard";
import { useRouter } from "next/navigation";
import { useEffect } from "react";
@@ -31,9 +32,11 @@ function RootLayout(props: RootLayoutProps): JSX.Element {
-
- {children}
-
+
+
+ {children}
+
+
diff --git a/src/services/store/index.tsx b/src/services/store/index.tsx
index b3f906d..5f37f81 100644
--- a/src/services/store/index.tsx
+++ b/src/services/store/index.tsx
@@ -1,15 +1,28 @@
-
// store/index.ts
-import { configureStore } from '@reduxjs/toolkit';
+import { configureStore, combineReducers } from '@reduxjs/toolkit';
+import { persistStore, persistReducer } from 'redux-persist';
+import storage from 'redux-persist/lib/storage'; // defaults to localStorage for web
import authReducer from './authSlice';
+const rootReducer = combineReducers({
+ auth: authReducer,
+});
+
+const persistConfig = {
+ key: 'root',
+ storage,
+ whitelist: ['auth'], // only auth will be persisted
+};
+
+const persistedReducer = persistReducer(persistConfig, rootReducer);
+
const store = configureStore({
- reducer: {
- auth: authReducer,
- },
+ reducer: persistedReducer,
});
-export type RootState = ReturnType;
+const persistor = persistStore(store);
+
+export type RootState = ReturnType;
export type AppDispatch = typeof store.dispatch;
-export default store;
+export { store, persistor };
diff --git a/yarn.lock b/yarn.lock
index 2c1625a..e50f994 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4013,12 +4013,17 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
+redux-persist@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/redux-persist/-/redux-persist-6.0.0.tgz"
+ integrity sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==
+
redux-thunk@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz"
integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==
-redux@^5.0.0, redux@^5.0.1:
+redux@^5.0.0, redux@^5.0.1, redux@>4.0.0:
version "5.0.1"
resolved "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz"
integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==