Created the AccountMenu.jsx
This commit is contained in:
parent
9f67e08f92
commit
ec0bbeaf58
@ -0,0 +1,54 @@
|
|||||||
|
import {ListItemIcon, Menu, MenuItem} from "@mui/material";
|
||||||
|
import {Brightness4, Brightness7, Favorite, Logout} from "@mui/icons-material";
|
||||||
|
import {useContext} from "react";
|
||||||
|
import {TokenContext} from "@/common/contexts/Token";
|
||||||
|
import {t} from "i18next";
|
||||||
|
import {SettingsContext} from "@/common/contexts/Settings";
|
||||||
|
|
||||||
|
const DONATION_URL = "https://ko-fi.com/gnmyt";
|
||||||
|
|
||||||
|
export const AccountMenu = ({menuOpen, setMenuOpen}) => {
|
||||||
|
const {checkToken} = useContext(TokenContext);
|
||||||
|
const {theme, updateTheme} = useContext(SettingsContext);
|
||||||
|
|
||||||
|
const switchTheme = () => {
|
||||||
|
setMenuOpen(false);
|
||||||
|
updateTheme(theme === 'dark' ? 'light' : 'dark');
|
||||||
|
}
|
||||||
|
|
||||||
|
const logout = () => {
|
||||||
|
setMenuOpen(false);
|
||||||
|
localStorage.removeItem("token");
|
||||||
|
checkToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
const openDonation = () => {
|
||||||
|
setMenuOpen(false);
|
||||||
|
window.open(DONATION_URL, "_blank");
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Menu anchorEl={document.getElementById("menu")} open={menuOpen} onClose={() => setMenuOpen(false)}>
|
||||||
|
<MenuItem onClick={openDonation}>
|
||||||
|
<ListItemIcon>
|
||||||
|
<Favorite color="error" />
|
||||||
|
</ListItemIcon>
|
||||||
|
{t("header.support_me")}
|
||||||
|
</MenuItem>
|
||||||
|
<MenuItem onClick={switchTheme}>
|
||||||
|
<ListItemIcon>
|
||||||
|
{theme === 'dark' ? <Brightness7 size="small" /> : <Brightness4 size="small" />}
|
||||||
|
</ListItemIcon>
|
||||||
|
{t(`header.${theme === 'dark' ? 'light' : 'dark'}_theme`)}
|
||||||
|
</MenuItem>
|
||||||
|
<MenuItem onClick={logout}>
|
||||||
|
<ListItemIcon>
|
||||||
|
<Logout fontSize="small"/>
|
||||||
|
</ListItemIcon>
|
||||||
|
{t("header.logout")}
|
||||||
|
</MenuItem>
|
||||||
|
</Menu>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
Reference in New Issue
Block a user