@strapi/content-manager 5.42.1 → 5.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/admin/hooks/useDocumentActions.js +5 -5
  2. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  3. package/dist/admin/hooks/useDocumentActions.mjs +6 -6
  4. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  5. package/dist/admin/hooks/usePersistentQueryParams.js +37 -19
  6. package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
  7. package/dist/admin/hooks/usePersistentQueryParams.mjs +38 -20
  8. package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -1
  9. package/dist/admin/pages/EditView/EditViewPage.js +29 -4
  10. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  11. package/dist/admin/pages/EditView/EditViewPage.mjs +10 -4
  12. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  13. package/dist/admin/pages/EditView/components/DocumentActions.js +30 -20
  14. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  15. package/dist/admin/pages/EditView/components/DocumentActions.mjs +30 -20
  16. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  17. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +2 -1
  18. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  19. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +2 -1
  20. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +19 -0
  22. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +19 -0
  24. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +4 -1
  26. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +4 -1
  28. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +34 -9
  30. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +34 -9
  32. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  33. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +22 -5
  34. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  35. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +26 -9
  36. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  37. package/dist/admin/pages/ListView/ListViewPage.js +19 -8
  38. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  39. package/dist/admin/pages/ListView/ListViewPage.mjs +19 -8
  40. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  41. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +1 -1
  42. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  43. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +1 -1
  44. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
  45. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +37 -25
  46. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  47. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +38 -26
  48. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  49. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +3 -0
  50. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  51. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +3 -0
  52. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  53. package/dist/admin/pages/ListView/components/TableCells/CellValue.js +3 -2
  54. package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -1
  55. package/dist/admin/pages/ListView/components/TableCells/CellValue.mjs +3 -2
  56. package/dist/admin/pages/ListView/components/TableCells/CellValue.mjs.map +1 -1
  57. package/dist/admin/services/documents.js +32 -7
  58. package/dist/admin/services/documents.js.map +1 -1
  59. package/dist/admin/services/documents.mjs +32 -8
  60. package/dist/admin/services/documents.mjs.map +1 -1
  61. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  62. package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +6 -1
  63. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +3 -1
  64. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +2 -0
  65. package/dist/admin/src/pages/ListConfiguration/ListConfigurationPage.d.ts +1 -1
  66. package/dist/admin/src/pages/ListView/components/TableCells/CellValue.d.ts +2 -1
  67. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  68. package/dist/admin/src/services/api.d.ts +1 -1
  69. package/dist/admin/src/services/components.d.ts +2 -2
  70. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  71. package/dist/admin/src/services/documents.d.ts +22 -17
  72. package/dist/admin/src/services/homepage.d.ts +1 -1
  73. package/dist/admin/src/services/init.d.ts +1 -1
  74. package/dist/admin/src/services/relations.d.ts +2 -2
  75. package/dist/admin/src/services/uid.d.ts +3 -3
  76. package/dist/admin/translations/nl.json.js +180 -11
  77. package/dist/admin/translations/nl.json.js.map +1 -1
  78. package/dist/admin/translations/nl.json.mjs +180 -11
  79. package/dist/admin/translations/nl.json.mjs.map +1 -1
  80. package/dist/server/controllers/collection-types.js +32 -1
  81. package/dist/server/controllers/collection-types.js.map +1 -1
  82. package/dist/server/controllers/collection-types.mjs +33 -2
  83. package/dist/server/controllers/collection-types.mjs.map +1 -1
  84. package/dist/server/routes/admin.js +21 -0
  85. package/dist/server/routes/admin.js.map +1 -1
  86. package/dist/server/routes/admin.mjs +21 -0
  87. package/dist/server/routes/admin.mjs.map +1 -1
  88. package/dist/server/src/controllers/collection-types.d.ts +1 -0
  89. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  90. package/dist/server/src/controllers/index.d.ts +1 -0
  91. package/dist/server/src/controllers/index.d.ts.map +1 -1
  92. package/dist/server/src/index.d.ts +1 -0
  93. package/dist/server/src/index.d.ts.map +1 -1
  94. package/dist/server/src/routes/admin.d.ts.map +1 -1
  95. package/package.json +5 -5
@@ -60,7 +60,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
60
60
  const { trackUsage } = strapiAdmin.useTracking();
61
61
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
62
62
  const navigate = reactRouterDom.useNavigate();
63
- const { data: aiFeatureConfig } = ee.useGetAIFeatureConfigQuery();
63
+ const { data: aiFeatureConfig } = ee.useGetAiFeatureConfigQuery();
64
64
  const isAiAvailable = ee.useAIAvailability();
65
65
  // Get metadata from context providers for tracking purposes
66
66
  const previewContext = Preview.usePreviewContext('useDocumentActions', ()=>true, false);
@@ -222,7 +222,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
222
222
  fromPreview,
223
223
  fromRelationModal,
224
224
  ...isAiAvailable ? {
225
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
225
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
226
226
  } : {}
227
227
  });
228
228
  toggleNotification({
@@ -319,7 +319,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
319
319
  fromPreview,
320
320
  fromRelationModal,
321
321
  ...isAiAvailable ? {
322
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
322
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
323
323
  } : {}
324
324
  });
325
325
  toggleNotification({
@@ -465,7 +465,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
465
465
  fromPreview,
466
466
  fromRelationModal,
467
467
  ...isAiAvailable ? {
468
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
468
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
469
469
  } : {}
470
470
  });
471
471
  toggleNotification({
@@ -564,7 +564,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
564
564
  trackUsage('didCreateEntry', {
565
565
  ...trackerProperty,
566
566
  ...isAiAvailable ? {
567
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
567
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
568
568
  } : {}
569
569
  });
570
570
  toggleNotification({
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentActions.js","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n} from '@strapi/admin/strapi-admin';\nimport { useGetAIFeatureConfigQuery, useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n locale?: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const { data: aiFeatureConfig } = useGetAIFeatureConfigQuery();\n const isAiAvailable = useAIAvailability();\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\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 [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', {\n documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\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 [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\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 [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [\n createDocument,\n formatAPIError,\n formatMessage,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n trackUsage,\n isAiAvailable,\n aiFeatureConfig,\n ]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId, locale }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n params: locale ? { locale } : undefined,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\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 [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n // Omit id and documentId so they are not copied to the clone\n const { id: _id, documentId: _documentId, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","data","aiFeatureConfig","useGetAIFeatureConfigQuery","isAiAvailable","useAIAvailability","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","isAIi18nConfigured","Boolean","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","locale","cloneDocument","useCloneDocumentMutation","clone","body","_id","_documentId","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":"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"}
1
+ {"version":3,"file":"useDocumentActions.js","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n} from '@strapi/admin/strapi-admin';\nimport { useGetAiFeatureConfigQuery, useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n locale?: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const { data: aiFeatureConfig } = useGetAiFeatureConfigQuery();\n const isAiAvailable = useAIAvailability();\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\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 [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', {\n documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\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 [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\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 [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [\n createDocument,\n formatAPIError,\n formatMessage,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n trackUsage,\n isAiAvailable,\n aiFeatureConfig,\n ]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId, locale }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n params: locale ? { locale } : undefined,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\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 [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n // Omit id and documentId so they are not copied to the clone\n const { id: _id, documentId: _documentId, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","data","aiFeatureConfig","useGetAiFeatureConfigQuery","isAiAvailable","useAIAvailability","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","isAiI18nConfigured","Boolean","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","locale","cloneDocument","useCloneDocumentMutation","clone","body","_id","_documentId","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAMA,4BAAAA,GAA+B;IACnCC,EAAAA,EAAI,oBAAA;IACJC,cAAAA,EAAgB;AAClB,CAAA;AA2HA;;;;;;;;;;;;;;;;;;;;;AAqBC,UACKC,kBAAAA,GAAyC,IAAA;IAC7C,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,8BAAAA,EAAAA;AACpD,IAAA,MAAMC,QAAAA,GAAWC,0BAAAA,EAAAA;AACjB,IAAA,MAAM,EAAEC,IAAAA,EAAMC,eAAe,EAAE,GAAGC,6BAAAA,EAAAA;AAClC,IAAA,MAAMC,aAAAA,GAAgBC,oBAAAA,EAAAA;;AAGtB,IAAA,MAAMC,cAAAA,GAAiBC,yBAAAA,CAAkB,oBAAA,EAAsB,IAAM,IAAA,EAAM,KAAA,CAAA;AAC3E,IAAA,MAAMC,eAAAA,GAAkBC,8BAAAA,CAAiB,oBAAA,EAAsB,IAAM,IAAA,EAAM,KAAA,CAAA;AAC3E,IAAA,MAAMC,cAAcJ,cAAAA,IAAkBK,SAAAA;AACtC,IAAA,MAAMC,oBAAoBJ,eAAAA,IAAmBG,SAAAA;AAE7C,IAAA,MAAM,CAACE,cAAAA,EAAgB,EAAEC,WAAWC,UAAU,EAAE,CAAC,GAAGC,mCAAAA,EAAAA;AACpD,IAAA,MAAMC,OAAAA,GAAsCC,gBAAAA,CAAMC,WAAW,CAC3D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEC,eAAAA,GAAAA;QACpD,IAAI;AACF9B,YAAAA,UAAAA,CAAW,iBAAA,EAAmB8B,eAAAA,CAAAA;YAE9B,MAAMC,GAAAA,GAAM,MAAMZ,cAAAA,CAAe;AAC/BO,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAC,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBACjBoC,IAAAA,EAAM,QAAA;oBACNC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AACnC,iBAAA,CAAA;gBAEA,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAtC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,uBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEAM,YAAAA,UAAAA,CAAW,gBAAA,EAAkB8B,eAAAA,CAAAA;AAE7B,YAAA,OAAOC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;AAEAQ,YAAAA,UAAAA,CAAW,mBAAA,EAAqB;gBAAEkC,KAAAA,EAAOE,GAAAA;AAAK,gBAAA,GAAGN;AAAgB,aAAA,CAAA;YAEjE,MAAMM,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACpC,QAAAA,UAAAA;AAAYmB,QAAAA,cAAAA;AAAgBvB,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;AAGjF,IAAA,MAAM,CAACkC,mBAAAA,EAAqB,EAAEjB,WAAWkB,cAAc,EAAE,CAAC,GAAGC,wCAAAA,EAAAA;IAE7D,MAAMC,UAAAA,GAA6ChB,gBAAAA,CAAMC,WAAW,CAClE,OAAO,EAAEE,KAAK,EAAEc,WAAW,EAAEZ,MAAM,EAAE,GAAA;QACnC,IAAI;YACF7B,UAAAA,CAAW,uBAAA,CAAA;YAEX,MAAM+B,GAAAA,GAAM,MAAMM,mBAAAA,CAAoB;AACpCV,gBAAAA,KAAAA;AACAc,gBAAAA,WAAAA;AACAZ,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBACjBoC,IAAAA,EAAM,QAAA;oBACNC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AACnC,iBAAA,CAAA;gBAEA,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAtC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNU,gBAAAA,KAAAA,EAAO5C,aAAAA,CAAc;AACnBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,wBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAuC,OAAAA,EAAS;AACX,aAAA,CAAA;YAEAjC,UAAAA,CAAW,sBAAA,CAAA;AAEX,YAAA,OAAO+B,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEAQ,UAAAA,CAAW,yBAAA,CAAA;YAEX,MAAMoC,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACpC,QAAAA,UAAAA;AAAYqC,QAAAA,mBAAAA;AAAqBzC,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;AAGtF,IAAA,MAAM,CAACwC,eAAAA,EAAiB,EAAEvB,WAAWwB,oBAAoB,EAAE,CAAC,GAAGC,oCAAAA,EAAAA;AAC/D,IAAA,MAAMC,OAAAA,GAAuCtB,gBAAAA,CAAMC,WAAW,CAC5D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,GAAA;QAClD,IAAI;YACF,MAAME,GAAAA,GAAM,MAAMY,eAAAA,CAAgB;AAChCjB,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAC,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBACjBoC,IAAAA,EAAM,QAAA;oBACNC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AACnC,iBAAA,CAAA;gBAEA,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAtC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;oBACrBL,EAAAA,EAAI,wCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM4C,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACO,QAAAA,eAAAA;AAAiBxC,QAAAA,cAAAA;AAAgBL,QAAAA,aAAAA;AAAeF,QAAAA;AAAmB,KAAA,CAAA;AAGtE,IAAA,MAAM,CAACmD,eAAAA,EAAiB,EAAE3B,WAAW4B,YAAY,EAAE,CAAC,GAAGC,oCAAAA,EAAAA;AAEvD,IAAA,MAAMC,OAAAA,GAAuC1B,gBAAAA,CAAMC,WAAW,CAC5D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEtB,IAAAA,GAAAA;QACpD,IAAI;AACFP,YAAAA,UAAAA,CAAW,kBAAA,EAAoB;AAAE4B,gBAAAA;AAAW,aAAA,CAAA;YAE5C,MAAMG,GAAAA,GAAM,MAAMgB,eAAAA,CAAgB;AAChCrB,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACArB,gBAAAA,IAAAA;AACAsB,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBACxE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;AAEAlC,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;AAC5B4B,gBAAAA,UAAAA;AACAZ,gBAAAA,WAAAA;AACAE,gBAAAA,iBAAAA;AACA,gBAAA,GAAIR,aAAAA,GACA;AAAEyC,oBAAAA,kBAAAA,EAAoBC,QAAQ5C,eAAAA,EAAiB2C,kBAAAA;AAAoB,iBAAA,GACnE;AACN,aAAA,CAAA;YAEAvD,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,wBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM4C,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AACEpC,QAAAA,UAAAA;AACA+C,QAAAA,eAAAA;AACA/B,QAAAA,WAAAA;AACAE,QAAAA,iBAAAA;AACAtB,QAAAA,kBAAAA;AACAE,QAAAA,aAAAA;AACAK,QAAAA;AACD,KAAA,CAAA;AAGH,IAAA,MAAM,CAACkD,oBAAAA,EAAsB,EAAEjC,WAAWkC,gBAAgB,EAAE,CAAC,GAAGC,yCAAAA,EAAAA;IAChE,MAAMC,WAAAA,GAA+ChC,gBAAAA,CAAMC,WAAW,CACpE,OAAO,EAAEE,KAAK,EAAEc,WAAW,EAAEZ,MAAM,EAAE,GAAA;QACnC,IAAI;;YAGF,MAAME,GAAAA,GAAM,MAAMsB,oBAAAA,CAAqB;AACrC1B,gBAAAA,KAAAA;AACAc,gBAAAA,WAAAA;AACAZ,gBAAAA;AACF,aAAA,CAAA;AACA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBACxE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAtC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,wBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YACA,MAAM4C,GAAAA;AACR,QAAA;IACF,CAAA,EACA;;AAEEiB,QAAAA,oBAAAA;AACAzD,QAAAA,kBAAAA;AACAE,QAAAA,aAAAA;AACAK,QAAAA;AACD,KAAA,CAAA;AAGH,IAAA,MAAM,CAACsD,cAAAA,EAAgB,EAAErC,WAAWsC,UAAU,EAAE,CAAC,GAAGC,mCAAAA,EAAAA;AACpD,IAAA,MAAMC,MAAAA,GAAqCpC,gBAAAA,CAAMC,WAAW,CAC1D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEtB,IAAAA,EAAMuB,eAAAA,GAAAA;QAC1D,IAAI;AACF9B,YAAAA,UAAAA,CAAW,eAAA,EAAiB8B,eAAAA,CAAAA;YAE5B,MAAMC,GAAAA,GAAM,MAAM0B,cAAAA,CAAe;AAC/B/B,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACArB,gBAAAA,IAAAA;AACAsB,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;AAExElC,gBAAAA,UAAAA,CAAW,iBAAA,EAAmB;AAAEkC,oBAAAA,KAAAA,EAAOH,IAAIG,KAAK;AAAE,oBAAA,GAAGJ;AAAgB,iBAAA,CAAA;gBAErE,OAAO;AAAEI,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;AAEAlC,YAAAA,UAAAA,CAAW,cAAA,EAAgB;AACzB,gBAAA,GAAG8B,eAAe;AAClBF,gBAAAA,UAAAA,EAAYG,GAAAA,CAAIxB,IAAI,CAACA,IAAI,CAACqB,UAAU;AACpCZ,gBAAAA,WAAAA;AACAE,gBAAAA,iBAAAA;AACA,gBAAA,GAAIR,aAAAA,GACA;AAAEyC,oBAAAA,kBAAAA,EAAoBC,QAAQ5C,eAAAA,EAAiB2C,kBAAAA;AAAoB,iBAAA,GACnE;AACN,aAAA,CAAA;YACAvD,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,qBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;AACZpC,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEkC,KAAAA,EAAOE,GAAAA;AAAK,gBAAA,GAAGN;AAAgB,aAAA,CAAA;YAE/DlC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM4C,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AACEpC,QAAAA,UAAAA;AACAyD,QAAAA,cAAAA;AACAzC,QAAAA,WAAAA;AACAE,QAAAA,iBAAAA;AACAtB,QAAAA,kBAAAA;AACAE,QAAAA,aAAAA;AACAK,QAAAA;AACD,KAAA,CAAA;IAGH,MAAM,CAAC0D,kBAAkB,GAAGC,sCAAAA,EAAAA;AAC5B,IAAA,MAAMC,YAA2CvC,gBAAAA,CAAMC,WAAW,CAChE,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEmC,eAAe,KAAK,GAAA;QACxE,IAAI;YACFhE,UAAAA,CAAW,oBAAA,CAAA;YAEX,MAAM+B,GAAAA,GAAM,MAAM8B,iBAAAA,CAAkB;AAClCnC,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAC,gBAAAA,MAAAA;gBACAtB,IAAAA,EAAM;AACJyD,oBAAAA;AACF;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWjC,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBAExE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAlC,UAAAA,CAAW,mBAAA,CAAA;YAEXJ,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,0BAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM4C,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACpC,QAAAA,UAAAA;AAAY6D,QAAAA,iBAAAA;AAAmBjE,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;AAGpF,IAAA,MAAM,CAAC8D,sBAAAA,EAAwB,EAAE7C,WAAW8C,kBAAkB,EAAE,CAAC,GAC/DC,2CAAAA,EAAAA;IACF,MAAMC,aAAAA,GAAmD5C,gBAAAA,CAAMC,WAAW,CACxE,OAAO,EAAEE,KAAK,EAAEc,WAAW,EAAEZ,MAAM,EAAE,GAAA;QACnC,IAAI;YACF7B,UAAAA,CAAW,0BAAA,CAAA;YAEX,MAAM+B,GAAAA,GAAM,MAAMkC,sBAAAA,CAAuB;AACvCtC,gBAAAA,KAAAA;AACAc,gBAAAA,WAAAA;AACAZ,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBAExE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAlC,UAAAA,CAAW,yBAAA,CAAA;YAEXJ,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNU,gBAAAA,KAAAA,EAAO5C,aAAAA,CAAc;AACnBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,2BAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAuC,OAAAA,EAAS;AACX,aAAA,CAAA;AAEA,YAAA,OAAOF,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEAQ,UAAAA,CAAW,4BAAA,CAAA;YAEX,MAAMoC,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACpC,QAAAA,UAAAA;AAAYiE,QAAAA,sBAAAA;AAAwBrE,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;IAGzF,MAAM,CAACkE,eAAe,GAAGC,mCAAAA,EAAAA;IACzB,MAAMC,MAAAA,GAAqC/C,gBAAAA,CAAMC,WAAW,CAC1D,OAAO,EAAEE,KAAK,EAAEE,MAAM,EAAE,EAAEtB,IAAAA,EAAMuB,eAAAA,GAAAA;QAC9B,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMsC,cAAAA,CAAe;AAC/B1C,gBAAAA,KAAAA;AACApB,gBAAAA,IAAAA;AACAsB,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;AAExElC,gBAAAA,UAAAA,CAAW,mBAAA,EAAqB;AAAEkC,oBAAAA,KAAAA,EAAOH,IAAIG,KAAK;AAAE,oBAAA,GAAGJ;AAAgB,iBAAA,CAAA;gBAEvE,OAAO;AAAEI,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;AACAlC,YAAAA,UAAAA,CAAW,gBAAA,EAAkB;AAC3B,gBAAA,GAAG8B,eAAe;AAClBF,gBAAAA,UAAAA,EAAYG,GAAAA,CAAIxB,IAAI,CAACA,IAAI,CAACqB,UAAU;AACpCZ,gBAAAA,WAAAA;AACAE,gBAAAA,iBAAAA;AACA,gBAAA,GAAIR,aAAAA,GACA;AAAEyC,oBAAAA,kBAAAA,EAAoBC,QAAQ5C,eAAAA,EAAiB2C,kBAAAA;AAAoB,iBAAA,GACnE;AACN,aAAA,CAAA;YAEAvD,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,qBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;AAEAQ,YAAAA,UAAAA,CAAW,mBAAA,EAAqB;gBAAEkC,KAAAA,EAAOE,GAAAA;AAAK,gBAAA,GAAGN;AAAgB,aAAA,CAAA;YAEjE,MAAMM,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AACEiC,QAAAA,cAAAA;AACAlE,QAAAA,cAAAA;AACAL,QAAAA,aAAAA;AACAkB,QAAAA,WAAAA;AACAE,QAAAA,iBAAAA;AACAtB,QAAAA,kBAAAA;AACAI,QAAAA,UAAAA;AACAU,QAAAA,aAAAA;AACAF,QAAAA;AACD,KAAA,CAAA;IAGH,MAAM,CAACgE,kBAAkB,GAAGC,sCAAAA,EAAAA;IAC5B,MAAMC,SAAAA,GAA2ClD,gBAAAA,CAAMC,WAAW,CAChE,OAAO,EAAEE,KAAK,EAAEgD,QAAQ,EAAEC,MAAM,EAAE,GAAA;QAChC,IAAI;YACF,MAAM7C,GAAAA,GAAM,MAAMyC,iBAAAA,CAAkB;AAClC7C,gBAAAA,KAAAA;AACAgD,gBAAAA,QAAAA;AACA9C,gBAAAA,MAAAA,EAAQ+C,MAAAA,GAAS;AAAEA,oBAAAA;iBAAO,GAAI3D;AAChC,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWc,GAAAA,EAAK;gBAClB,OAAO;AAAEG,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;YAEAtC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,sBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOqC,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM4C,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACoC,QAAAA,iBAAAA;AAAmB1E,QAAAA,aAAAA;AAAeF,QAAAA;AAAmB,KAAA,CAAA;IAGxD,MAAM,CAACiF,cAAc,GAAGC,kCAAAA,EAAAA;AACxB,IAAA,MAAMC,KAAAA,GAAmCvD,gBAAAA,CAAMC,WAAW,CACxD,OAAO,EAAEE,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEmD,IAAAA,EAAMlD,eAAAA,GAAAA;QAC1C,IAAI;;YAEF,MAAM,EAAErC,IAAIwF,GAAG,EAAErD,YAAYsD,WAAW,EAAE,GAAGC,QAAAA,EAAU,GAAGH,IAAAA;AAE1D;;;;YAKA,MAAMjD,GAAAA,GAAM,MAAM8C,aAAAA,CAAc;AAC9BlD,gBAAAA,KAAAA;gBACAgD,QAAAA,EAAU/C,UAAAA;gBACVrB,IAAAA,EAAM4E,QAAAA;AACNtD,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAAA,EAAK;gBAClBnC,kBAAAA,CAAmB;oBAAEoC,IAAAA,EAAM,QAAA;oBAAUC,OAAAA,EAAS9B,cAAAA,CAAe4B,IAAIG,KAAK;AAAE,iBAAA,CAAA;AAExElC,gBAAAA,UAAAA,CAAW,mBAAA,EAAqB;AAAEkC,oBAAAA,KAAAA,EAAOH,IAAIG,KAAK;AAAE,oBAAA,GAAGJ;AAAgB,iBAAA,CAAA;gBAEvE,OAAO;AAAEI,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B,YAAA;AAEAlC,YAAAA,UAAAA,CAAW,gBAAA,EAAkB;AAC3B,gBAAA,GAAG8B,eAAe;AAClB,gBAAA,GAAIpB,aAAAA,GACA;AAAEyC,oBAAAA,kBAAAA,EAAoBC,QAAQ5C,eAAAA,EAAiB2C,kBAAAA;AAAoB,iBAAA,GACnE;AACN,aAAA,CAAA;YACAvD,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAc;AACrBL,oBAAAA,EAAAA,EAAI0C,2BAAAA,CAAe,sBAAA,CAAA;oBACnBzC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;;YAGAW,QAAAA,CAAS,CAAC,MAAM,EAAE0B,GAAAA,CAAIxB,IAAI,CAACA,IAAI,CAACqB,UAAU,CAAA,CAAE,EAAE;gBAAEwD,QAAAA,EAAU;AAAO,aAAA,CAAA;AAEjE,YAAA,OAAOrD,IAAIxB,IAAI;AACjB,QAAA,CAAA,CAAE,OAAO6B,GAAAA,EAAK;YACZxC,kBAAAA,CAAmB;gBACjBoC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnC,aAAAA,CAAcN,4BAAAA;AACzB,aAAA,CAAA;AAEAQ,YAAAA,UAAAA,CAAW,mBAAA,EAAqB;gBAAEkC,KAAAA,EAAOE,GAAAA;AAAK,gBAAA,GAAGN;AAAgB,aAAA,CAAA;YAEjE,MAAMM,GAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACyC,QAAAA,aAAAA;AAAe7E,QAAAA,UAAAA;AAAYJ,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA,cAAAA;AAAgBE,QAAAA;AAAS,KAAA,CAAA;IAG1F,MAAM,CAACgF,OAAO,GAAGC,iCAAAA,EAAAA;AACjB,IAAA,MAAMC,WAAAA,GAA+C/D,gBAAAA,CAAMC,WAAW,CACpE,OAAO+D,IAAAA,GAAAA;AACL,QAAA,MAAM,EAAEjF,IAAI,EAAE,GAAG,MAAM8E,MAAAA,CAAOG,IAAAA,CAAAA;QAE9B,OAAOjF,IAAAA;IACT,CAAA,EACA;AAAC8E,QAAAA;AAAO,KAAA,CAAA;IAGV,OAAO;AACLjE,QAAAA,SAAAA,EACE4B,YAAAA,IACAU,UAAAA,IACAd,oBAAAA,IACAvB,UAAAA,IACAiB,kBACA4B,kBAAAA,IACAZ,gBAAAA;AACFoB,QAAAA,SAAAA;AACAK,QAAAA,KAAAA;AACAR,QAAAA,MAAAA;QACAkB,MAAAA,EAAQlE,OAAAA;AACRiB,QAAAA,UAAAA;AACAM,QAAAA,OAAAA;AACAyC,QAAAA,WAAAA;AACArC,QAAAA,OAAAA;AACAM,QAAAA,WAAAA;AACAO,QAAAA,SAAAA;AACAK,QAAAA,aAAAA;AACAR,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useNotification, useTracking, useAPIErrorHandler } from '@strapi/admin/strapi-admin';
3
- import { useGetAIFeatureConfigQuery, useAIAvailability } from '@strapi/admin/strapi-admin/ee';
3
+ import { useGetAiFeatureConfigQuery, useAIAvailability } from '@strapi/admin/strapi-admin/ee';
4
4
  import { useIntl } from 'react-intl';
5
5
  import { useNavigate } from 'react-router-dom';
6
6
  import { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal.mjs';
@@ -39,7 +39,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
39
39
  const { trackUsage } = useTracking();
40
40
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
41
41
  const navigate = useNavigate();
42
- const { data: aiFeatureConfig } = useGetAIFeatureConfigQuery();
42
+ const { data: aiFeatureConfig } = useGetAiFeatureConfigQuery();
43
43
  const isAiAvailable = useAIAvailability();
44
44
  // Get metadata from context providers for tracking purposes
45
45
  const previewContext = usePreviewContext('useDocumentActions', ()=>true, false);
@@ -201,7 +201,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
201
201
  fromPreview,
202
202
  fromRelationModal,
203
203
  ...isAiAvailable ? {
204
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
204
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
205
205
  } : {}
206
206
  });
207
207
  toggleNotification({
@@ -298,7 +298,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
298
298
  fromPreview,
299
299
  fromRelationModal,
300
300
  ...isAiAvailable ? {
301
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
301
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
302
302
  } : {}
303
303
  });
304
304
  toggleNotification({
@@ -444,7 +444,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
444
444
  fromPreview,
445
445
  fromRelationModal,
446
446
  ...isAiAvailable ? {
447
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
447
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
448
448
  } : {}
449
449
  });
450
450
  toggleNotification({
@@ -543,7 +543,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
543
543
  trackUsage('didCreateEntry', {
544
544
  ...trackerProperty,
545
545
  ...isAiAvailable ? {
546
- isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured)
546
+ isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured)
547
547
  } : {}
548
548
  });
549
549
  toggleNotification({
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentActions.mjs","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n} from '@strapi/admin/strapi-admin';\nimport { useGetAIFeatureConfigQuery, useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n locale?: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const { data: aiFeatureConfig } = useGetAIFeatureConfigQuery();\n const isAiAvailable = useAIAvailability();\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\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 [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', {\n documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\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 [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\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 [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [\n createDocument,\n formatAPIError,\n formatMessage,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n trackUsage,\n isAiAvailable,\n aiFeatureConfig,\n ]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId, locale }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n params: locale ? { locale } : undefined,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\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 [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n // Omit id and documentId so they are not copied to the clone\n const { id: _id, documentId: _documentId, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n ...(isAiAvailable\n ? { isAIi18nConfigured: Boolean(aiFeatureConfig?.isAIi18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","data","aiFeatureConfig","useGetAIFeatureConfigQuery","isAiAvailable","useAIAvailability","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","isAIi18nConfigured","Boolean","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","locale","cloneDocument","useCloneDocumentMutation","clone","body","_id","_documentId","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":"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"}
1
+ {"version":3,"file":"useDocumentActions.mjs","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n} from '@strapi/admin/strapi-admin';\nimport { useGetAiFeatureConfigQuery, useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n locale?: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const { data: aiFeatureConfig } = useGetAiFeatureConfigQuery();\n const isAiAvailable = useAIAvailability();\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\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 [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', {\n documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\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 [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\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 [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [\n createDocument,\n formatAPIError,\n formatMessage,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n trackUsage,\n isAiAvailable,\n aiFeatureConfig,\n ]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId, locale }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n params: locale ? { locale } : undefined,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\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 [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n // Omit id and documentId so they are not copied to the clone\n const { id: _id, documentId: _documentId, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n ...(isAiAvailable\n ? { isAiI18nConfigured: Boolean(aiFeatureConfig?.isAiI18nConfigured) }\n : {}),\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","data","aiFeatureConfig","useGetAiFeatureConfigQuery","isAiAvailable","useAIAvailability","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","isAiI18nConfigured","Boolean","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","locale","cloneDocument","useCloneDocumentMutation","clone","body","_id","_documentId","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":"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"}
@@ -4,7 +4,6 @@ var React = require('react');
4
4
  var strapiAdmin = require('@strapi/admin/strapi-admin');
5
5
  var get = require('lodash/get');
6
6
  var set = require('lodash/set');
7
- var reactRouterDom = require('react-router-dom');
8
7
 
9
8
  const filterObjectKeys = (obj, keys)=>{
10
9
  const result = {};
@@ -16,39 +15,58 @@ const filterObjectKeys = (obj, keys)=>{
16
15
  }
17
16
  return result;
18
17
  };
19
- const usePersistentPartialQueryParams = (keyPrefix, keysToPersist, pathnameInKey = true)=>{
20
- const { pathname } = reactRouterDom.useLocation();
18
+ const normalizeConfigEntry = (key, entry, scope)=>{
19
+ const { paths } = entry;
20
+ const isScoped = entry.scoped === true && !!scope;
21
+ return {
22
+ key: isScoped ? `${key}:${scope}` : key,
23
+ paths
24
+ };
25
+ };
26
+ const usePersistentPartialQueryParams = (config)=>{
27
+ const scope = strapiAdmin.usePersistentStateScope();
21
28
  const [{ query }, setQuery] = strapiAdmin.useQueryParams();
22
- const localStorageKey = `${keyPrefix}${pathnameInKey ? pathname : ''}`;
29
+ const clonedConfig = JSON.stringify(config);
23
30
  // load query params from local storge
24
31
  React.useEffect(()=>{
25
- const savedQueryParams = window.localStorage.getItem(localStorageKey);
26
- if (!savedQueryParams) return;
27
- let parsedSavedParams;
28
- try {
29
- parsedSavedParams = JSON.parse(savedQueryParams);
30
- } catch {
31
- return;
32
+ const mergedFilteredQuery = {};
33
+ for (const [keyPrefix, entry] of Object.entries(config)){
34
+ const { key, paths } = normalizeConfigEntry(keyPrefix, entry, scope);
35
+ const savedQueryParams = window.localStorage.getItem(key);
36
+ if (!savedQueryParams) continue;
37
+ let parsedSavedParams;
38
+ try {
39
+ parsedSavedParams = JSON.parse(savedQueryParams);
40
+ } catch {
41
+ continue;
42
+ }
43
+ if (Object.keys(parsedSavedParams).length === 0) continue;
44
+ const filteredQuery = filterObjectKeys(parsedSavedParams, paths);
45
+ Object.assign(mergedFilteredQuery, filteredQuery);
32
46
  }
33
- if (Object.keys(parsedSavedParams).length === 0) return;
34
- const filteredQuery = filterObjectKeys(parsedSavedParams, keysToPersist);
47
+ if (Object.keys(mergedFilteredQuery).length === 0) return;
35
48
  setQuery({
36
- ...filteredQuery,
49
+ ...mergedFilteredQuery,
37
50
  ...query
38
51
  }, 'push', true);
39
52
  // eslint-disable-next-line react-hooks/exhaustive-deps
40
53
  }, [
41
- localStorageKey
54
+ clonedConfig,
55
+ scope
42
56
  ]);
43
57
  // update local storage
44
58
  React.useEffect(()=>{
45
- const paramsToPersist = filterObjectKeys(query, keysToPersist);
46
- if (Object.keys(paramsToPersist).length === 0) return;
47
- window.localStorage.setItem(localStorageKey, JSON.stringify(paramsToPersist));
59
+ for (const [keyPrefix, entry] of Object.entries(config)){
60
+ const { key, paths } = normalizeConfigEntry(keyPrefix, entry, scope);
61
+ const paramsToPersist = filterObjectKeys(query, paths);
62
+ if (Object.keys(paramsToPersist).length === 0) continue;
63
+ window.localStorage.setItem(key, JSON.stringify(paramsToPersist));
64
+ }
48
65
  // eslint-disable-next-line react-hooks/exhaustive-deps
49
66
  }, [
50
67
  query,
51
- keysToPersist
68
+ clonedConfig,
69
+ scope
52
70
  ]);
53
71
  };
54
72