import withPageTitle from 'HOCs/withPageTitle'; import cn from 'classnames'; import { observer } from 'mobx-react-lite'; import React, { useEffect } from 'react'; import { useModal } from 'App/components/Modal'; import { useStore } from 'App/mstore'; import { Loader, NoContent, Tooltip, confirm } from 'UI'; import { Button } from 'antd'; import RoleForm from './components/RoleForm'; import RoleItem from './components/RoleItem'; import stl from './roles.module.css'; import { useTranslation } from 'react-i18next'; function Roles() { const { t } = useTranslation(); const { roleStore, projectsStore, userStore } = useStore(); const { account } = userStore; const projectsMap = projectsStore.list.reduce((acc: any, p: any) => { acc[p.id] = p.name; return acc; }, {}); const roles = roleStore.list; const { loading } = roleStore; const { init } = roleStore; const { deleteRole } = roleStore; const permissionsMap: any = {}; roleStore.permissions.forEach((p: any) => { permissionsMap[p.value] = p.text; }); const { showModal, hideModal } = useModal(); const isAdmin = account.admin || account.superAdmin; useEffect(() => { void roleStore.fetchRoles(); }, []); const editHandler = (role: any) => { init(role); showModal( , { right: true }, ); }; const deleteHandler = async (role: any) => { if ( await confirm({ header: t('Roles'), confirmation: t('Are you sure you want to remove this role?'), }) ) { deleteRole(role.roleId).then(hideModal); } }; return (

{t('Roles and Access')}

{t('Title')}
{t('Project Access')}
{t('Feature Access')}
{roles.map((role) => ( ))}
); } export default withPageTitle('Roles & Access - OpenReplay Preferences')( observer(Roles), );