{"version":3,"file":"useReviewWorkflows.mjs","sources":["../../../../../admin/src/routes/settings/hooks/useReviewWorkflows.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport {\n  GetWorkflowsParams,\n  useCreateWorkflowMutation,\n  useDeleteWorkflowMutation,\n  useGetWorkflowsQuery,\n  useUpdateWorkflowMutation,\n} from '../../../services/settings';\n\nimport type { Create, Update } from '../../../../../shared/contracts/review-workflows';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n  id: 'notification.error',\n  defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype UseReviewWorkflowsArgs = GetWorkflowsParams & {\n  skip?: boolean;\n};\n\nconst useReviewWorkflows = (params: UseReviewWorkflowsArgs = {}) => {\n  const { toggleNotification } = useNotification();\n  const { formatMessage } = useIntl();\n  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n  const { skip = false, ...queryParams } = params;\n\n  const { data, isLoading, error } = useGetWorkflowsQuery(\n    {\n      ...queryParams,\n    },\n    {\n      skip,\n    }\n  );\n\n  React.useEffect(() => {\n    if (error) {\n      toggleNotification({\n        type: 'danger',\n        message: formatAPIError(error),\n      });\n    }\n  }, [error, formatAPIError, toggleNotification]);\n\n  const [createWorkflow] = useCreateWorkflowMutation();\n  const create = React.useCallback(\n    async (data: Create.Request['body']['data']) => {\n      try {\n        const res = await createWorkflow({ data });\n\n        if ('error' in res) {\n          toggleNotification({\n            type: 'danger',\n            message: formatAPIError(res.error),\n          });\n\n          return res;\n        }\n\n        toggleNotification({\n          type: 'success',\n          message: formatMessage({ id: 'actions.created', defaultMessage: 'Created workflow' }),\n        });\n\n        return res;\n      } catch (err) {\n        toggleNotification({\n          type: 'danger',\n          message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n        });\n\n        throw err;\n      }\n    },\n    [createWorkflow, formatAPIError, formatMessage, toggleNotification]\n  );\n\n  const [updateWorkflow] = useUpdateWorkflowMutation();\n  const update = React.useCallback(\n    async (id: string, data: Update.Request['body']['data']) => {\n      try {\n        const res = await updateWorkflow({ id, data });\n\n        if ('error' in res) {\n          toggleNotification({\n            type: 'danger',\n            message: formatAPIError(res.error),\n          });\n\n          return res;\n        }\n\n        toggleNotification({\n          type: 'success',\n          message: formatMessage({ id: 'actions.updated', defaultMessage: 'Updated workflow' }),\n        });\n\n        return res;\n      } catch (err) {\n        toggleNotification({\n          type: 'danger',\n          message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n        });\n\n        throw err;\n      }\n    },\n    [formatAPIError, formatMessage, toggleNotification, updateWorkflow]\n  );\n\n  const [deleteWorkflow] = useDeleteWorkflowMutation();\n  const deleteAction = React.useCallback(\n    async (id: string) => {\n      try {\n        const res = await deleteWorkflow({ id });\n\n        if ('error' in res) {\n          toggleNotification({\n            type: 'danger',\n            message: formatAPIError(res.error),\n          });\n\n          return;\n        }\n\n        toggleNotification({\n          type: 'success',\n          message: formatMessage({ id: 'actions.deleted', defaultMessage: 'Deleted workflow' }),\n        });\n\n        return res.data;\n      } catch (err) {\n        toggleNotification({\n          type: 'danger',\n          message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n        });\n\n        throw err;\n      }\n    },\n    [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]\n  );\n\n  const { workflows = [], meta } = data ?? {};\n\n  return {\n    // meta contains e.g. the total of all workflows. we can not use\n    // the pagination object here, because the list is not paginated.\n    meta,\n    workflows,\n    isLoading,\n    error,\n    create,\n    delete: deleteAction,\n    update,\n  };\n};\n\nexport { useReviewWorkflows };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useReviewWorkflows","params","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","skip","queryParams","data","isLoading","error","useGetWorkflowsQuery","React","useEffect","type","message","createWorkflow","useCreateWorkflowMutation","create","useCallback","res","err","updateWorkflow","useUpdateWorkflowMutation","update","deleteWorkflow","useDeleteWorkflowMutation","deleteAction","workflows","meta","delete"],"mappings":"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"}