import PropTypes from "prop-types"; import { useNavigate } from "react-router"; import { useSelector } from "react-redux"; import { Box, Tab, useTheme } from "@mui/material"; import TabContext from "@mui/lab/TabContext"; import TabList from "@mui/lab/TabList"; import ProfilePanel from "../../Components/TabPanels/Account/ProfilePanel"; import PasswordPanel from "../../Components/TabPanels/Account/PasswordPanel"; import TeamPanel from "../../Components/TabPanels/Account/TeamPanel"; import "./index.css"; /** * Account component renders a settings page with tabs for Profile, Password, and Team settings. * @param {string} [props.open] - Specifies the initially open tab: 'profile', 'password', or 'team'. * @returns {JSX.Element} */ const Account = ({ open = "profile" }) => { const theme = useTheme(); const navigate = useNavigate(); const tab = open; const handleTabChange = (event, newTab) => { navigate(`/account/${newTab}`); }; const { user } = useSelector((state) => state.auth); const requiredRoles = ["superadmin", "admin"]; let tabList = ["Profile", "Password", "Team"]; const hideTeams = !requiredRoles.some((role) => user.role.includes(role)); if (hideTeams) { tabList = ["Profile", "Password"]; } // Remove password for demo if (user.role.includes("demo")) { tabList = ["Profile"]; } return ( {tabList.map((label, index) => ( ))} {user.role.includes("superadmin") && } {!hideTeams && } ); }; Account.propTypes = { open: PropTypes.oneOf(["profile", "password", "team"]), }; export default Account;