diff --git a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDetailDrawer.tsx b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDetailDrawer.tsx index 856483e979..58f174a218 100644 --- a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDetailDrawer.tsx +++ b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDetailDrawer.tsx @@ -21,7 +21,7 @@ type IncidentDetailDrawerProps = { export const IncidentDetailDrawer = ({ mode, onCancel, onSubmit, incident }: IncidentDetailDrawerProps) => { const [isEditView, setIsEditView] = useState(false); - const showEditor = isEditView || mode === IncidentAction.ADD; + const showEditor = isEditView || mode === IncidentAction.CREATE; const modalClosePopup = () => { if (showEditor) { Modal.confirm({ diff --git a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDrawerHeader.tsx b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDrawerHeader.tsx index 17c8caf7a4..d907f05e44 100644 --- a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDrawerHeader.tsx +++ b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentDrawerHeader.tsx @@ -43,9 +43,9 @@ export const IncidentDrawerHeader = ({ const handleIncidentLinkCopy = useIncidentURNCopyLink(data ? data?.urn : ''); return ( - {mode === IncidentAction.ADD ? 'Create New Incident' : data?.title} + {mode === IncidentAction.CREATE ? 'Create New Incident' : data?.title} - {mode === IncidentAction.VIEW && isEditActive === false && ( + {mode === IncidentAction.EDIT && isEditActive === false && ( <> { const assigneeValues = data?.assignees && getAssigneeWithURN(data.assignees); - const isFormValid = Boolean(data?.title?.length && data?.description && data?.type && data?.customType); + const isFormValid = Boolean( + data?.title?.length && + data?.description && + data?.type && + (data?.type !== IncidentType.Custom || data?.customType), + ); const { user } = useUserContext(); const userHasChangedState = useRef(false); const isFirstRender = useRef(true); @@ -47,7 +52,7 @@ export const IncidentEditor = ({ const [isLoadingAssigneeOrAssets, setIsLoadingAssigneeOrAssets] = useState(true); const [isRequiredFieldsFilled, setIsRequiredFieldsFilled] = useState( - mode === IncidentAction.VIEW ? !isFormValid : false, + mode === IncidentAction.EDIT ? isFormValid : false, ); const { handleSubmit, form, isLoading } = useIncidentHandler({ @@ -78,7 +83,7 @@ export const IncidentEditor = ({ // Ensure we don't override user's choice if they manually change the state if ( - mode === IncidentAction.VIEW && + mode === IncidentAction.EDIT && (formValues?.status === IncidentStage.Fixed || formValues?.status === IncidentStage.NoActionRequired) && formValues?.state !== IncidentState.Resolved ) { @@ -105,7 +110,7 @@ export const IncidentEditor = ({ } }; - const actionButtonLabel = mode === IncidentAction.ADD ? 'Create' : 'Update'; + const actionButtonLabel = mode === IncidentAction.CREATE ? 'Create' : 'Update'; const showCustomCategory = form.getFieldValue('type') === IncidentType.Custom; const isLinkedAssetPresent = !formValues?.resourceUrns?.length; const isSubmitButtonDisabled = @@ -146,7 +151,7 @@ export const IncidentEditor = ({ doNotFocus className="add-incident-description" placeholder="Provide a description..." - content={mode === IncidentAction.VIEW ? data?.description : ''} + content={mode === IncidentAction.EDIT ? data?.description : ''} /> @@ -171,6 +176,7 @@ export const IncidentEditor = ({ styles={{ width: '50%', }} + isDisabled={mode === IncidentAction.EDIT} id="custom-incident-type-input" /> @@ -205,7 +211,7 @@ export const IncidentEditor = ({ setIsLinkedAssetsLoading={setIsLoadingAssigneeOrAssets} /> - {mode === IncidentAction.VIEW && ( + {mode === IncidentAction.EDIT && ( { - if (mode === IncidentAction.ADD) { + if (mode === IncidentAction.CREATE) { getEntities({ variables: { urns: [urn], @@ -75,7 +75,7 @@ export const IncidentLinkedAssetsList = ({ useEffect(() => { setLinkedAssets(resolvedLinkedAssets?.entities as any); - if (mode === IncidentAction.ADD) { + if (mode === IncidentAction.CREATE) { form.setFieldValue(RESOURCE_URN_FIELD_NAME, [urn]); } // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/hooks/useIncidentHandler.ts b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/hooks/useIncidentHandler.ts index d102509307..26e2d2818c 100644 --- a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/hooks/useIncidentHandler.ts +++ b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/hooks/useIncidentHandler.ts @@ -76,7 +76,7 @@ export const useIncidentHandler = ({ mode, onSubmit, incidentUrn, onClose, user, const [form] = Form.useForm(); const { urn, entityType } = useEntityData(); const client = useApolloClient(); - const isAddIncidentMode = mode === IncidentAction.ADD; + const isAddIncidentMode = mode === IncidentAction.CREATE; const handleAddIncident = async (input: any) => { return raiseIncidentMutation({ @@ -146,7 +146,7 @@ export const useIncidentHandler = ({ mode, onSubmit, incidentUrn, onClose, user, }, }; const newInput = _.omit(baseInput, ['state', 'message']); - const newUpdateInput = _.omit(newInput, ['resourceUrn', 'type']); + const newUpdateInput = _.omit(newInput, ['resourceUrn', 'type', 'customType']); const input = !isAddIncidentMode ? newUpdateInput : newInput; if (isAddIncidentMode) { diff --git a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentList.tsx b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentList.tsx index c28b4bd366..e60d6b72a3 100644 --- a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentList.tsx +++ b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentList.tsx @@ -107,7 +107,7 @@ export const IncidentList = () => { {showIncidentBuilder && ( { setTimeout(() => { refetch(); diff --git a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentListTable.tsx b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentListTable.tsx index 6a1541d344..d0445929a8 100644 --- a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentListTable.tsx +++ b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/IncidentListTable.tsx @@ -136,7 +136,7 @@ export const IncidentListTable = ({ incidentData, filter, refetch }: Props) => { {focusIncidentUrn && focusedIncidentEntity && ( setFocusIncidentUrn(null)} onSubmit={() => { diff --git a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/constant.ts b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/constant.ts index a8b728f46e..51b85e99a4 100644 --- a/datahub-web-react/src/app/entityV2/shared/tabs/Incident/constant.ts +++ b/datahub-web-react/src/app/entityV2/shared/tabs/Incident/constant.ts @@ -62,8 +62,8 @@ export const INCIDENT_CATEGORIES = [ ]; export enum IncidentAction { - ADD = 'add', - VIEW = 'view', + CREATE = 'create', + EDIT = 'edit', } interface IncidentPriorityInterface {