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 { Button, Loader, NoContent, Tooltip } from 'UI'; import { confirm } from 'UI'; import RoleForm from './components/RoleForm'; import RoleItem from './components/RoleItem'; import stl from './roles.module.css'; function Roles() { const { roleStore, projectsStore, userStore } = useStore(); const account = userStore.account; const projectsMap = projectsStore.list.reduce((acc: any, p: any) => { acc[p.id] = p.name; return acc; }, {}); const roles = roleStore.list; const loading = roleStore.loading; const init = roleStore.init; const deleteRole = roleStore.deleteRole; 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: 'Roles', confirmation: `Are you sure you want to remove this role?`, }) ) { deleteRole(role.roleId).then(hideModal); } }; return (

Roles and Access

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