Skip to content

Commit

Permalink
set Up redux
Browse files Browse the repository at this point in the history
  • Loading branch information
13XAVI committed Jun 20, 2024
1 parent aa0dcf2 commit 98fc7a7
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 3 deletions.
1 change: 1 addition & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ module.exports = {
'react/react-in-jsx-scope': 0,
'import/no-extraneous-dependencies': 0,
'import/extensions': 0,
'no-param-reassign': 0,
},
ignorePatterns: ['dist/**/*', 'postcss.config.js', 'tailwind.config.js'],
};
23 changes: 23 additions & 0 deletions src/Redux/EcommerceReducer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { createSlice } from '@reduxjs/toolkit';

interface IsLoggedIn {
value: boolean;
}

const initialState: IsLoggedIn = {
value: false,
};

const ecommerceSlice = createSlice({
name: 'IsLoggedIn',
initialState,
reducers: {
login: (state) => {
state.value = true;
},
},
});

export const { login } = ecommerceSlice.actions;

export default ecommerceSlice.reducer;
5 changes: 5 additions & 0 deletions src/Redux/Hooks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { useDispatch, useSelector, TypedUseSelectorHook } from 'react-redux';
import type { RootState, AppDispatch } from './store';

export const useAppDispatch = () => useDispatch<AppDispatch>();
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
8 changes: 8 additions & 0 deletions src/Redux/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { combineReducers } from '@reduxjs/toolkit';
import ecommerceReducer from './EcommerceReducer';

const rootReducer = combineReducers({
ecommerce: ecommerceReducer,
});

export default rootReducer;
11 changes: 11 additions & 0 deletions src/Redux/store.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { configureStore } from '@reduxjs/toolkit';
import rootReducer from './index';

const store = configureStore({
reducer: rootReducer,
});

export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;

export default store;
10 changes: 7 additions & 3 deletions src/main.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import { Provider } from 'react-redux';
import store from './Redux/store';
import App from '@/App.tsx';
import '@/index.css';

ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
</React.StrictMode>
<Provider store={store}>
<React.StrictMode>
<App />
</React.StrictMode>
</Provider>
);

0 comments on commit 98fc7a7

Please sign in to comment.