Files
medusa-store/packages/admin-next/dashboard/src/routes/workflow-executions/utils.ts
2024-07-29 14:26:47 -03:00

104 lines
3.1 KiB
TypeScript

import { AdminGetWorkflowExecutionsParams } from "@medusajs/medusa"
import { TFunction } from "i18next"
import {
STEP_ERROR_STATES,
STEP_INACTIVE_STATES,
STEP_IN_PROGRESS_STATES,
TRANSACTION_ERROR_STATES,
TRANSACTION_IN_PROGRESS_STATES,
} from "./constants"
import { TransactionState, TransactionStepState } from "./types"
export const adminExecutionKey = {
detail: (id: string) => ["workflow_executions", "detail", id],
list: (query?: AdminGetWorkflowExecutionsParams) => [
"workflow_executions",
"list",
{ query },
],
}
export const getTransactionStateColor = (
state: TransactionState
): "green" | "orange" | "red" => {
let statusColor: "green" | "red" | "orange" = "green"
if (TRANSACTION_ERROR_STATES.includes(state)) {
statusColor = "red"
}
if (TRANSACTION_IN_PROGRESS_STATES.includes(state)) {
statusColor = "orange"
}
return statusColor
}
export const getTransactionState = (
t: TFunction<"translation", any>,
state: TransactionState
) => {
switch (state) {
case TransactionState.DONE:
return t("workflowExecutions.state.done")
case TransactionState.FAILED:
return t("workflowExecutions.state.failed")
case TransactionState.REVERTED:
return t("workflowExecutions.state.reverted")
case TransactionState.INVOKING:
return t("workflowExecutions.state.invoking")
case TransactionState.WAITING_TO_COMPENSATE:
return t("workflowExecutions.transaction.state.waitingToCompensate")
case TransactionState.COMPENSATING:
return t("workflowExecutions.state.compensating")
case TransactionState.NOT_STARTED:
return t("workflowExecutions.state.notStarted")
}
}
export const getStepStateColor = (state: TransactionStepState) => {
let statusColor: "green" | "red" | "orange" | "grey" = "green"
if (STEP_ERROR_STATES.includes(state)) {
statusColor = "red"
}
if (STEP_INACTIVE_STATES.includes(state)) {
statusColor = "grey"
}
if (STEP_IN_PROGRESS_STATES.includes(state)) {
statusColor = "orange"
}
return statusColor
}
export const getStepState = (
t: TFunction<"translation", any>,
state: TransactionStepState
) => {
switch (state) {
case TransactionStepState.DONE:
return t("workflowExecutions.state.done")
case TransactionStepState.FAILED:
return t("workflowExecutions.state.failed")
case TransactionStepState.REVERTED:
return t("workflowExecutions.state.reverted")
case TransactionStepState.INVOKING:
return t("workflowExecutions.state.invoking")
case TransactionStepState.COMPENSATING:
return t("workflowExecutions.state.compensating")
case TransactionStepState.NOT_STARTED:
return t("workflowExecutions.state.notStarted")
case TransactionStepState.SKIPPED:
return t("workflowExecutions.step.state.skipped")
case TransactionStepState.SKIPPED_FAILURE:
return t("workflowExecutions.step.state.skippedFailure")
case TransactionStepState.DORMANT:
return t("workflowExecutions.step.state.dormant")
case TransactionStepState.TIMEOUT:
return t("workflowExecutions.step.state.timeout")
}
}