import React from 'react' import { Typography, DialogContent } from '@mui/material' import { BootstrapDialog } from '../../components/modal' import { BootstrapDialogTitle } from '../../components/dialogTitle' import { PermissionResponse } from '../../utils/types' export interface PermissionResponsePayload { permissionType: string principalType: string principal: string permissionSetting: string existingPermissions: PermissionResponse[] newAddedPermissions: PermissionResponse[] updatedPermissions: PermissionResponse[] errorPaths: string[] } type Props = { open: boolean setOpen: React.Dispatch> payload: PermissionResponsePayload } const PermissionResponseModal = ({ open, setOpen, payload }: Props) => { const newAddedPermissionsLength = payload.newAddedPermissions.length const updatedPermissionsLength = payload.updatedPermissions.length const existingPermissionsLength = payload.existingPermissions.length const appliedPermissionsLength = newAddedPermissionsLength + updatedPermissionsLength return (
setOpen(false)} open={open}> Permission Response {`${appliedPermissionsLength} "${payload.permissionSetting}", "${ payload.permissionType }", "${payload.principalType}", "${payload.principal}" ${ appliedPermissionsLength > 1 ? 'Rules' : 'Rule' }`}{' '} Applied: {newAddedPermissionsLength > 0 && ( <> {`${newAddedPermissionsLength} ${ newAddedPermissionsLength > 1 ? 'Rules' : 'Rule' }`}{' '} Added:
    {payload.newAddedPermissions.map((permission, index) => (
  • {permission.path}
  • ))}
)} {updatedPermissionsLength > 0 && ( <> {` ${updatedPermissionsLength} ${ updatedPermissionsLength > 1 ? 'Rules' : 'Rule' }`}{' '} Updated:
    {payload.updatedPermissions.map((permission, index) => (
  • {permission.path}
  • ))}
)} {existingPermissionsLength > 0 && ( <> {`${existingPermissionsLength} ${ existingPermissionsLength > 1 ? 'Rules' : 'Rule' }`}{' '} Unchanged:
    {payload.existingPermissions.map((permission, index) => (
  • {permission.path}
  • ))}
)} {payload.errorPaths.length > 0 && ( <> Errors occurred for following paths:
    {payload.errorPaths.map((path, index) => (
  • {path}
  • ))}
)}
) } export default PermissionResponseModal