import { r as ref, b as useRouter, az as useWorkflowHelpers, ay as useWorkflowSaving, a1 as useWorkflowsStore, Q as useUIStore, a as useToast, aw as useNpsSurveyStore, a3 as PLACEHOLDER_EMPTY_WORKFLOW_ID, al as useTelemetry, bo as useExternalHooks, c as useI18n, bc as useStorage, fl as LOCAL_STORAGE_ACTIVATION_FLAG, ag as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-CeNA_ukL.js"; function useWorkflowActivate() { const updatingWorkflowActivation = ref(false); const router = useRouter(); const workflowHelpers = useWorkflowHelpers(); const workflowSaving = useWorkflowSaving({ router }); const workflowsStore = useWorkflowsStore(); const uiStore = useUIStore(); const telemetry = useTelemetry(); const toast = useToast(); const i18n = useI18n(); const npsSurveyStore = useNpsSurveyStore(); const updateWorkflowActivation = async (workflowId, newActiveState, telemetrySource) => { updatingWorkflowActivation.value = true; const nodesIssuesExist = workflowsStore.nodesIssuesExist; let currWorkflowId = workflowId; if (!currWorkflowId || currWorkflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID) { const saved = await workflowSaving.saveCurrentWorkflow(); if (!saved) { updatingWorkflowActivation.value = false; return false; } currWorkflowId = workflowsStore.workflowId; } const isCurrentWorkflow = currWorkflowId === workflowsStore.workflowId; const activeWorkflows = workflowsStore.activeWorkflows; const isWorkflowActive = activeWorkflows.includes(currWorkflowId); const telemetryPayload = { workflow_id: currWorkflowId, is_active: newActiveState, previous_status: isWorkflowActive, ndv_input: telemetrySource === "ndv" }; telemetry.track("User set workflow active status", telemetryPayload); void useExternalHooks().run("workflowActivate.updateWorkflowActivation", telemetryPayload); try { if (isWorkflowActive && newActiveState) { toast.showMessage({ title: i18n.baseText("workflowActivator.workflowIsActive"), type: "success" }); updatingWorkflowActivation.value = false; return true; } if (isCurrentWorkflow && nodesIssuesExist && newActiveState) { toast.showMessage({ title: i18n.baseText( "workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title" ), message: i18n.baseText( "workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.message" ), type: "error" }); updatingWorkflowActivation.value = false; return false; } await workflowHelpers.updateWorkflow( { workflowId: currWorkflowId, active: newActiveState }, !uiStore.stateIsDirty ); } catch (error) { const newStateName = newActiveState ? "activated" : "deactivated"; toast.showError( error, i18n.baseText("workflowActivator.showError.title", { interpolate: { newStateName } }) + ":" ); updatingWorkflowActivation.value = false; return false; } const activationEventName = isCurrentWorkflow ? "workflow.activeChangeCurrent" : "workflow.activeChange"; void useExternalHooks().run(activationEventName, { workflowId: currWorkflowId, active: newActiveState }); updatingWorkflowActivation.value = false; if (isCurrentWorkflow) { if (newActiveState && useStorage(LOCAL_STORAGE_ACTIVATION_FLAG).value !== "true") { uiStore.openModal(WORKFLOW_ACTIVE_MODAL_KEY); } else { await npsSurveyStore.fetchPromptsData(); } } return newActiveState; }; const activateCurrentWorkflow = async (telemetrySource) => { const workflowId = workflowsStore.workflowId; return await updateWorkflowActivation(workflowId, true, telemetrySource); }; return { activateCurrentWorkflow, updateWorkflowActivation, updatingWorkflowActivation }; } export { useWorkflowActivate as u };