This repository has been archived on 2025-11-04. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
qoverflow/client/src/controllers/NavbarController.js

30 lines
1,020 B
JavaScript

import { useUser, useError } from 'contexts';
import { Navbar, MobileNavbar } from 'components';
import { logout } from 'services/userServices';
import { useNavigate } from 'react-router-dom';
import { useMediaQuery } from '@mui/material';
import Cookies from 'js-cookie';
export default function NavbarController() {
const { userData, setUserData } = useUser();
const { setError } = useError();
const navigate = useNavigate();
const xs = useMediaQuery((theme) => theme.breakpoints.only('xs'));
const sm = useMediaQuery((theme) => theme.breakpoints.only('sm'));
const md = useMediaQuery((theme) => theme.breakpoints.only('md'));
const logoutUser = async () => {
const { error } = await logout();
if (error) {
setError(error);
}
Cookies.remove('token');
setUserData({});
navigate('/users/login');
};
return md
? Navbar({ logout: logoutUser, userData })
: MobileNavbar({ logout: logoutUser, userData });
}