import { AppBar, Confirm, Layout, Logout, Menu, useLogout, UserMenu } from "react-admin"; import { LoginMethod } from "../pages/LoginPage"; import { useEffect, useState, Suspense } from "react"; import { Icons, DefaultIcon } from "./icons"; const AdminUserMenu = () => { const [open, setOpen] = useState(false); const logout = useLogout(); const checkLoginType = (ev: React.MouseEvent) => { const loginType: LoginMethod = (localStorage.getItem("login_type") || "credentials") as LoginMethod; if (loginType === "accessToken") { ev.stopPropagation(); setOpen(true); } }; const handleConfirm = () => { setOpen(false); logout(); }; const handleDialogClose = () => { setOpen(false); localStorage.removeItem("access_token"); localStorage.removeItem("login_type"); window.location.reload(); }; return (
); }; const AdminAppBar = () => } />; const AdminMenu = (props) => { const [menu, setMenu] = useState([]); useEffect(() => { const menuConfig = localStorage.getItem('menu'); if (menuConfig) { setMenu(JSON.parse(menuConfig)); } }, []); return ( {menu.map((item, index) => { const { url, icon, label } = item; const IconComponent = Icons[icon] as React.ComponentType | undefined; return ( : } onClick={props.onMenuClick} /> ); })} ); }; export const AdminLayout = ({ children }) => ( {children} );