Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | import { useNavigate, useParams } from "react-router-dom"; import { routes } from "../../../routes"; import { showSnackbar } from "../../../store/features/snackbar/snackbarSlice"; import CustomButton from "../../common/CustomButton"; import { useDispatch } from "react-redux"; import { useCreateDynamicAlertMutation, useUpdateDynamicAlertMutation, } from "../../../store/features/dynamicAlerts/api"; import handlePlaybookSavingValidations from "../../../utils/playbook/handlePlaybookSavingValidations"; import { useUpdatePlaybookMutation } from "../../../store/features/playbook/api"; import stateToPlaybook from "../../../utils/parser/playbook/stateToPlaybook"; import { useStartWorkflowExecutionMutation } from "../../../store/features/workflow/api"; function SaveOrUpdateDynamicAlertButton() { const { alert_id: alertId } = useParams(); const navigate = useNavigate(); const dispatch = useDispatch(); const [triggerStartWorkflow, { isLoading: startExecutionLoading }] = useStartWorkflowExecutionMutation(); const [triggerSave, { isLoading: saveLoading }] = useCreateDynamicAlertMutation(); const [triggerUpdate, { isLoading: updateLoading }] = useUpdateDynamicAlertMutation(); const [triggerUpdatePlaybook, { isLoading: updatePbLoading }] = useUpdatePlaybookMutation(); const loading = saveLoading || updateLoading || updatePbLoading; const handleUpdate = async () => { Iif (!alertId) return; try { const error = handlePlaybookSavingValidations(); Iif (error) throw error; const response = await triggerUpdatePlaybook(stateToPlaybook()).unwrap(); Iif (response.success) { const workflowUpdateResponse = await triggerUpdate().unwrap(); Iif (workflowUpdateResponse.success) { await triggerStartWorkflow(alertId).unwrap(); navigate(routes.DYNAMIC_ALERTS); } } } catch (e: any) { dispatch(showSnackbar(e?.message?.toString() ?? e.toString())); } }; const handleSave = async () => { try { let response: any = {}; response = await triggerSave().unwrap(); Iif (response.success) { await triggerStartWorkflow(response.workflow?.id).unwrap(); navigate(routes.DYNAMIC_ALERTS); } } catch (e: any) { dispatch(showSnackbar(e?.message?.toString() ?? e.toString())); } }; const handleClick = () => { if (alertId) { handleUpdate(); } else { handleSave(); } }; return ( <CustomButton disabled={loading} className="w-fit" onClick={handleClick}> {loading ? "Loading.." : alertId ? "Update and Start" : "Save and Start"} </CustomButton> ); } export default SaveOrUpdateDynamicAlertButton; |