link-stack/apps/link/metamigo-add/_components/layout/Menu.tsx

101 lines
2.8 KiB
TypeScript
Raw Normal View History

2023-06-28 12:55:24 +00:00
"use client";
2023-02-13 12:41:30 +00:00
/* eslint-disable camelcase */
import { FC, useState } from "react";
2023-05-25 07:03:57 +00:00
import VoiceIcon from "@mui/icons-material/PhoneInTalk";
import { Box } from "@mui/material";
2023-08-25 07:11:33 +00:00
// import { useTheme } from "@mui/styles";
2023-05-25 07:03:57 +00:00
import useMediaQuery from "@mui/material/useMediaQuery";
2023-03-15 12:17:43 +00:00
import { useTranslate, MenuItemLink } from "react-admin";
2023-02-13 12:41:30 +00:00
import webhooks from "../webhooks";
import voiceLines from "../voice/voicelines";
import voiceProviders from "../voice/providers";
import whatsappBots from "../whatsapp/bots";
import signalBots from "../signal/bots";
import { SubMenu } from "./SubMenu";
type MenuName = "menuVoice" | "menuSecurity";
export const Menu: FC = ({ onMenuClick, logout, dense = false }: any) => {
const [state, setState] = useState({
menuVoice: false,
menuSecurity: false,
});
const translate = useTranslate();
2023-08-25 07:11:33 +00:00
const theme: any = {}; // useTheme();
2023-05-25 14:36:08 +00:00
// @ts-ignore
2023-08-25 07:11:33 +00:00
const isXSmall = false; // useMediaQuery(theme?.breakpoints?.down("xs"));
const open = true; // useSelector((state: any) => state.admin.ui.sidebarOpen);
2023-02-13 12:41:30 +00:00
const handleToggle = (menu: MenuName) => {
2023-05-25 14:36:08 +00:00
setState((state: any) => ({ ...state, [menu]: !state[menu] }));
2023-02-13 12:41:30 +00:00
};
2023-03-15 12:17:43 +00:00
return (
2023-02-13 12:41:30 +00:00
<Box mt={1}>
<MenuItemLink
to={`/whatsappbots`}
primaryText={translate(`pos.menu.whatsapp`, {
smart_count: 2,
})}
leftIcon={<whatsappBots.icon />}
onClick={onMenuClick}
sidebarIsOpen={open}
dense={dense}
/>
<MenuItemLink
to={`/signalbots`}
primaryText={translate(`pos.menu.signal`, {
smart_count: 2,
})}
leftIcon={<signalBots.icon />}
onClick={onMenuClick}
sidebarIsOpen={open}
dense={dense}
/>
<SubMenu
handleToggle={() => handleToggle("menuVoice")}
isOpen={state.menuVoice}
sidebarIsOpen={open}
name="pos.menu.voice"
icon={<VoiceIcon />}
dense={dense}
>
<MenuItemLink
to={`/voiceproviders`}
primaryText={translate(`resources.providers.name`, {
smart_count: 2,
})}
leftIcon={<voiceProviders.icon />}
onClick={onMenuClick}
sidebarIsOpen={open}
dense={dense}
/>
<MenuItemLink
to={`/voicelines`}
primaryText={translate(`resources.voicelines.name`, {
smart_count: 2,
})}
leftIcon={<voiceLines.icon />}
onClick={onMenuClick}
sidebarIsOpen={open}
dense={dense}
/>
</SubMenu>
<MenuItemLink
to={`/webhooks`}
primaryText={translate(`resources.webhooks.name`, {
smart_count: 2,
})}
leftIcon={<webhooks.icon />}
onClick={onMenuClick}
sidebarIsOpen={open}
dense={dense}
/>
{isXSmall && logout}
</Box>
);
};
2023-03-15 12:17:43 +00:00
2023-02-13 12:41:30 +00:00
export default Menu;