You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
import { FC } from 'react'; |
|
import { v4 as uuidv4 } from 'uuid'; |
|
|
|
import AlertOverrideInputGroup from './AlertOverrideInputGroup'; |
|
import List from '../List'; |
|
import useChecklist from '../../hooks/useChecklist'; |
|
|
|
const ManageAlertOverride: FC<ManageAlertOverrideProps> = (props) => { |
|
const { |
|
alertOverrideTargetOptions, |
|
formikUtils, |
|
mailRecipientUuid: mrUuid, |
|
} = props; |
|
|
|
const { formik } = formikUtils; |
|
const { |
|
values: { [mrUuid]: mailRecipient }, |
|
} = formik; |
|
const { alertOverrides } = mailRecipient; |
|
|
|
const { hasChecks } = useChecklist(alertOverrides); |
|
|
|
return ( |
|
<List |
|
allowAddItem |
|
disableDelete={!hasChecks} |
|
edit |
|
header="Alert override rules" |
|
listEmpty="No alert overrides(s)" |
|
listItems={alertOverrides} |
|
onAdd={() => { |
|
const aoUuid = uuidv4(); |
|
|
|
formik.setValues((previous) => { |
|
const current = { ...previous }; |
|
|
|
current[mrUuid].alertOverrides[aoUuid] = { |
|
level: 2, |
|
target: null, |
|
uuid: aoUuid, |
|
}; |
|
|
|
return current; |
|
}); |
|
}} |
|
renderListItem={(uuid) => ( |
|
<AlertOverrideInputGroup |
|
alertOverrideTargetOptions={alertOverrideTargetOptions} |
|
alertOverrideUuid={uuid} |
|
formikUtils={formikUtils} |
|
mailRecipientUuid={mrUuid} |
|
/> |
|
)} |
|
/> |
|
); |
|
}; |
|
|
|
export default ManageAlertOverride;
|
|
|