Conflict Commits

This commit is contained in:
Eknoor Singh 2025-02-11 16:23:41 +05:30
parent 79c1e02537
commit 5d310be430
6 changed files with 9275 additions and 5527 deletions

View file

@ -21,7 +21,7 @@
"Stack": "link:@mui/material/Stack", "Stack": "link:@mui/material/Stack",
"Tabs": "link:@mui/material/Tabs", "Tabs": "link:@mui/material/Tabs",
"Toolbar": "link:@mui/material/Toolbar", "Toolbar": "link:@mui/material/Toolbar",
"Typography": "link:@mui/material/Typography", "Typography": "link:@mui/material/Typog raphy",
"add": "^2.0.6", "add": "^2.0.6",
"axios": "^1.7.9", "axios": "^1.7.9",
"clsx": "^2.1.1", "clsx": "^2.1.1",

File diff suppressed because it is too large Load diff

View file

@ -1,28 +1,12 @@
import AppRouter from "./router"; import { BrowserRouter as Router} from 'react-router-dom';
import { useSelector } from "react-redux"; import AppRouter from './router';
import { useMatch, useNavigate, useSearchParams } from "react-router-dom";
import { useEffect } from "react";
import { RootState } from "./redux/store";
import { withCookies, ReactCookieProps } from "react-cookie";
const App: React.FC<ReactCookieProps> = ({ cookies }) => { function App() {
const navigate = useNavigate(); return (
const isPanel = useMatch("/auth/login"); <Router>
const isCookiePresent = !!cookies?.get("authToken"); <AppRouter />
console.log("cookies present:", isCookiePresent); </Router>
const [searchParams] = useSearchParams();
const isAuthenticated = useSelector(
(state: RootState) => state.authReducer.isAuthenticated
); );
}
useEffect(() => { export default App;
if (isPanel && isCookiePresent) {
navigate("/panel/dashboard");
}
}, [isPanel, isAuthenticated, searchParams]);
return <AppRouter />;
};
export default withCookies(App);

View file

@ -11,9 +11,6 @@ import LogoutRoundedIcon from '@mui/icons-material/LogoutRounded';
import MoreVertRoundedIcon from '@mui/icons-material/MoreVertRounded'; import MoreVertRoundedIcon from '@mui/icons-material/MoreVertRounded';
import MenuButton from '../MenuButton'; import MenuButton from '../MenuButton';
import { Avatar } from '@mui/material'; import { Avatar } from '@mui/material';
import { useDispatch } from 'react-redux';
import { logoutUser } from '../../redux/slices/authSlice';
import { useCookies } from 'react-cookie';
const MenuItem = styled(MuiMenuItem)({ const MenuItem = styled(MuiMenuItem)({
margin: '2px 0', margin: '2px 0',
@ -22,20 +19,12 @@ const MenuItem = styled(MuiMenuItem)({
export default function OptionsMenu({ avatar }: { avatar?: boolean }) { export default function OptionsMenu({ avatar }: { avatar?: boolean }) {
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null); const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
const open = Boolean(anchorEl); const open = Boolean(anchorEl);
const dispatch = useDispatch();
const [cookies, setCookie, removeCookie] = useCookies(['authToken']);
const handleClick = (event: React.MouseEvent<HTMLElement>) => { const handleClick = (event: React.MouseEvent<HTMLElement>) => {
setAnchorEl(event.currentTarget); setAnchorEl(event.currentTarget);
}; };
const handleClose = () => { const handleClose = () => {
setAnchorEl(null); setAnchorEl(null);
}; };
const handleLogout = () => {
dispatch(logoutUser({ removeCookie }));
console.log('click')
handleClose();
};
return ( return (
<React.Fragment> <React.Fragment>
<MenuButton <MenuButton
@ -81,7 +70,7 @@ export default function OptionsMenu({ avatar }: { avatar?: boolean }) {
<MenuItem onClick={handleClose}>Settings</MenuItem> <MenuItem onClick={handleClose}>Settings</MenuItem>
<Divider /> <Divider />
<MenuItem <MenuItem
onClick={handleLogout} onClick={handleClose}
sx={{ sx={{
[`& .${listItemIconClasses.root}`]: { [`& .${listItemIconClasses.root}`]: {
ml: 'auto', ml: 'auto',

View file

@ -1,32 +1,29 @@
import React from "react"; import React from 'react';
import ReactDOM from "react-dom/client"; import ReactDOM from 'react-dom/client';
import "./index.css"; import './index.css';
import App from "./App"; import reportWebVitals from './reportWebVitals';
import { Provider } from "react-redux"; import App from './App';
import store from "./redux/store"; import { Provider } from 'react-redux';
import { Slide, ToastContainer } from "react-toastify"; import store from './redux/store/store.ts';
import { BrowserRouter as Router } from "react-router-dom"; import { Slide, ToastContainer } from 'react-toastify';
import { CookiesProvider } from "react-cookie";
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render( root.render(
<React.StrictMode> <React.StrictMode>
<CookiesProvider defaultSetOptions={{ path: "/" }}> <Provider store={store}>
<Provider store={store}> <App />
<Router> <ToastContainer
<App /> autoClose={2000}
</Router> hideProgressBar
<ToastContainer theme="dark"
autoClose={2000} transition={Slide}
hideProgressBar toastStyle={{ border: '1px solid dimgray' }}
theme="dark" />
transition={Slide} </Provider>
toastStyle={{ border: "1px solid dimgray" }} </React.StrictMode>
/>
</Provider>
</CookiesProvider>
</React.StrictMode>
); );
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

View file

@ -1,10 +1,13 @@
import { configureStore } from '@reduxjs/toolkit'; import { configureStore } from '@reduxjs/toolkit';
import authReducer from '../slices/authSlice.ts'
const store = configureStore({
reducer: {
auth: authReducer,
},
});
import rootReducer from './reducers';
export const store = configureStore({
reducer: rootReducer,
})
export type RootState = ReturnType<typeof store.getState>; export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch; export type AppDispatch = typeof store.dispatch;
export default store; export default store;