import PropTypes from 'prop-types'; import SettingsIcon from '@mui/icons-material/Settings'; import IconButton from '@mui/material/IconButton'; import Paper from '@mui/material/Paper'; import Stack from '@mui/material/Stack'; import Table from '@mui/material/Table'; import TableBody from '@mui/material/TableBody'; import TableCell from '@mui/material/TableCell'; import TableContainer from '@mui/material/TableContainer'; import TableHead from '@mui/material/TableHead'; import TableRow from '@mui/material/TableRow'; import Typography from '@mui/material/Typography'; import * as React from 'react'; import usePermissionCatalog from 'hooks/usePermissionCatalog.ee'; import PermissionSettings from './PermissionSettings.ee'; import PermissionCatalogFieldLoader from './PermissionCatalogFieldLoader'; import ActionField from './ActionField'; const PermissionCatalogField = ({ name = 'permissions', disabled = false, syncIsCreator = false, }) => { const { data, isLoading: isPermissionCatalogLoading } = usePermissionCatalog(); const permissionCatalog = data?.data; const [dialogName, setDialogName] = React.useState(); if (isPermissionCatalogLoading) return ; return ( {permissionCatalog?.actions.map((action) => ( {action.label} ))} {permissionCatalog?.subjects.map((subject) => ( {subject.label} {permissionCatalog?.actions.map((action) => ( {action.subjects.includes(subject.key) && ( )} {!action.subjects.includes(subject.key) && '-'} ))} setDialogName(subject.key)} disabled={disabled} data-test="permission-settings-button" > setDialogName('')} fieldPrefix={`${name}.${subject.key}`} subject={subject.key} actions={permissionCatalog?.actions} conditions={permissionCatalog?.conditions} /> ))}
); }; PermissionCatalogField.propTypes = { name: PropTypes.string, disabled: PropTypes.bool, syncIsCreator: PropTypes.bool, }; export default PermissionCatalogField;