@strapi/content-manager 0.0.0-experimental.063fe6b9a49d4596ee1ddd671448d312727d87a4 → 0.0.0-experimental.06e300737ca79fa320fff00b809f095a5d7fe7c4

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 (176) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/LeftMenu.js +34 -30
  6. package/dist/admin/components/LeftMenu.js.map +1 -1
  7. package/dist/admin/components/LeftMenu.mjs +36 -32
  8. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  9. package/dist/admin/history/components/VersionContent.js +24 -3
  10. package/dist/admin/history/components/VersionContent.js.map +1 -1
  11. package/dist/admin/history/components/VersionContent.mjs +25 -4
  12. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  13. package/dist/admin/history/components/VersionHeader.js +6 -0
  14. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  15. package/dist/admin/history/components/VersionHeader.mjs +7 -1
  16. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  17. package/dist/admin/hooks/useDocumentActions.js +7 -3
  18. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  19. package/dist/admin/hooks/useDocumentActions.mjs +7 -3
  20. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/EditViewPage.js +92 -75
  22. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  23. package/dist/admin/pages/EditView/EditViewPage.mjs +93 -76
  24. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/components/DocumentActions.js +57 -54
  26. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  27. package/dist/admin/pages/EditView/components/DocumentActions.mjs +58 -55
  28. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  30. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  32. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  34. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  36. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  38. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  40. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  42. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  44. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +13 -2
  46. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +14 -3
  48. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
  50. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
  52. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +155 -106
  54. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +158 -109
  56. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
  58. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
  60. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  62. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  64. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  66. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  68. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
  70. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
  72. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  73. package/dist/admin/pages/EditView/utils/data.js +103 -0
  74. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  75. package/dist/admin/pages/EditView/utils/data.mjs +103 -1
  76. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  77. package/dist/admin/pages/ListView/ListViewPage.js +77 -0
  78. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  79. package/dist/admin/pages/ListView/ListViewPage.mjs +78 -1
  80. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  81. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  82. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  83. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  84. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  85. package/dist/admin/pages/ListView/components/Filters.js +1 -0
  86. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  87. package/dist/admin/pages/ListView/components/Filters.mjs +1 -0
  88. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  89. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  90. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  91. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  92. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  93. package/dist/admin/services/documents.js +2 -2
  94. package/dist/admin/services/documents.js.map +1 -1
  95. package/dist/admin/services/documents.mjs +2 -2
  96. package/dist/admin/services/documents.mjs.map +1 -1
  97. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  98. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  99. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  100. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
  101. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  102. package/dist/admin/src/services/documents.d.ts +7 -1
  103. package/dist/admin/src/utils/validation.d.ts +1 -0
  104. package/dist/admin/translations/en.json.js +1 -0
  105. package/dist/admin/translations/en.json.js.map +1 -1
  106. package/dist/admin/translations/en.json.mjs +1 -0
  107. package/dist/admin/translations/en.json.mjs.map +1 -1
  108. package/dist/admin/translations/fr.json.js +6 -1
  109. package/dist/admin/translations/fr.json.js.map +1 -1
  110. package/dist/admin/translations/fr.json.mjs +6 -1
  111. package/dist/admin/translations/fr.json.mjs.map +1 -1
  112. package/dist/admin/utils/validation.js +17 -6
  113. package/dist/admin/utils/validation.js.map +1 -1
  114. package/dist/admin/utils/validation.mjs +17 -6
  115. package/dist/admin/utils/validation.mjs.map +1 -1
  116. package/dist/server/controllers/content-types.js +11 -1
  117. package/dist/server/controllers/content-types.js.map +1 -1
  118. package/dist/server/controllers/content-types.mjs +11 -1
  119. package/dist/server/controllers/content-types.mjs.map +1 -1
  120. package/dist/server/controllers/relations.js +2 -2
  121. package/dist/server/controllers/relations.js.map +1 -1
  122. package/dist/server/controllers/relations.mjs +2 -2
  123. package/dist/server/controllers/relations.mjs.map +1 -1
  124. package/dist/server/controllers/validation/index.js +14 -2
  125. package/dist/server/controllers/validation/index.js.map +1 -1
  126. package/dist/server/controllers/validation/index.mjs +14 -2
  127. package/dist/server/controllers/validation/index.mjs.map +1 -1
  128. package/dist/server/history/services/lifecycles.js +3 -0
  129. package/dist/server/history/services/lifecycles.js.map +1 -1
  130. package/dist/server/history/services/lifecycles.mjs +3 -0
  131. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  132. package/dist/server/services/data-mapper.js +4 -1
  133. package/dist/server/services/data-mapper.js.map +1 -1
  134. package/dist/server/services/data-mapper.mjs +4 -1
  135. package/dist/server/services/data-mapper.mjs.map +1 -1
  136. package/dist/server/services/document-manager.js +8 -1
  137. package/dist/server/services/document-manager.js.map +1 -1
  138. package/dist/server/services/document-manager.mjs +8 -1
  139. package/dist/server/services/document-manager.mjs.map +1 -1
  140. package/dist/server/services/document-metadata.js +3 -1
  141. package/dist/server/services/document-metadata.js.map +1 -1
  142. package/dist/server/services/document-metadata.mjs +3 -1
  143. package/dist/server/services/document-metadata.mjs.map +1 -1
  144. package/dist/server/services/utils/configuration/attributes.js +1 -1
  145. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  146. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  147. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  148. package/dist/server/services/utils/configuration/layouts.js +1 -1
  149. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  150. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  151. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  152. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  153. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  154. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  155. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  156. package/dist/server/services/utils/populate.js +11 -0
  157. package/dist/server/services/utils/populate.js.map +1 -1
  158. package/dist/server/services/utils/populate.mjs +11 -0
  159. package/dist/server/services/utils/populate.mjs.map +1 -1
  160. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  161. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  162. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  163. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  164. package/dist/server/src/index.d.ts +1 -0
  165. package/dist/server/src/index.d.ts.map +1 -1
  166. package/dist/server/src/services/data-mapper.d.ts +1 -0
  167. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  168. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  169. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  170. package/dist/server/src/services/index.d.ts +1 -0
  171. package/dist/server/src/services/index.d.ts.map +1 -1
  172. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  173. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  174. package/dist/shared/contracts/collection-types.d.ts +0 -1
  175. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  176. package/package.json +11 -8
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useNotification, useAPIErrorHandler, useQueryParams, useForm } from '@strapi/admin/strapi-admin';
4
- import { Menu, Flex, Button, VisuallyHidden, Dialog, Modal, Typography, Radio } from '@strapi/design-system';
4
+ import { Flex, Button, Menu, VisuallyHidden, Dialog, Modal, Typography, Radio } from '@strapi/design-system';
5
5
  import { More, Cross, WarningCircle } from '@strapi/icons';
6
6
  import mapValues from 'lodash/fp/mapValues';
7
7
  import get from 'lodash/get';
@@ -9,7 +9,6 @@ import merge from 'lodash/merge';
9
9
  import set from 'lodash/set';
10
10
  import { useIntl } from 'react-intl';
11
11
  import { useNavigate, useMatch, useParams } from 'react-router-dom';
12
- import { styled } from 'styled-components';
13
12
  import { PUBLISHED_AT_ATTRIBUTE_NAME } from '../../../constants/attributes.mjs';
14
13
  import { SINGLE_TYPES } from '../../../constants/collections.mjs';
15
14
  import { useDocumentRBAC } from '../../../features/DocumentRBAC.mjs';
@@ -21,6 +20,7 @@ import { LIST_PATH, CLONE_PATH } from '../../../router.mjs';
21
20
  import { useGetDraftRelationCountQuery as useLazyGetDraftRelationCountQuery, useUpdateDocumentMutation } from '../../../services/documents.mjs';
22
21
  import { isBaseQueryError, buildValidParams } from '../../../utils/api.mjs';
23
22
  import { getTranslation } from '../../../utils/translations.mjs';
23
+ import { handleInvisibleAttributes } from '../utils/data.mjs';
24
24
  import { useRelationModal } from './FormInputs/Relations/RelationModal.mjs';
25
25
 
26
26
  const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
@@ -153,11 +153,6 @@ const DocumentActionButton = (action)=>{
153
153
  ]
154
154
  });
155
155
  };
156
- const MenuItem = styled(Menu.Item)`
157
- &:hover {
158
- background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
159
- }
160
- `;
161
156
  const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
162
157
  const [isOpen, setIsOpen] = React.useState(false);
163
158
  const [dialogId, setDialogId] = React.useState(null);
@@ -219,27 +214,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
219
214
  popoverPlacement: "bottom-end",
220
215
  children: [
221
216
  actions.map((action)=>{
222
- return /*#__PURE__*/ jsx(MenuItem, {
217
+ return /*#__PURE__*/ jsx(Menu.Item, {
223
218
  disabled: action.disabled,
224
219
  /* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
225
220
  display: "block",
226
- isVariantDanger: action.variant === 'danger',
227
- isDisabled: action.disabled,
221
+ variant: action.variant === 'danger' ? action.variant : 'default',
222
+ startIcon: action.icon,
228
223
  children: /*#__PURE__*/ jsx(Flex, {
229
224
  justifyContent: "space-between",
230
225
  gap: 4,
231
- children: /*#__PURE__*/ jsxs(Flex, {
232
- color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
226
+ children: /*#__PURE__*/ jsx(Flex, {
233
227
  gap: 2,
234
228
  tag: "span",
235
- children: [
236
- /*#__PURE__*/ jsx(Flex, {
237
- tag: "span",
238
- color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
239
- children: action.icon
240
- }),
241
- action.label
242
- ]
229
+ children: action.label
243
230
  })
244
231
  })
245
232
  }, action.id);
@@ -267,30 +254,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
267
254
  ]
268
255
  });
269
256
  };
270
- const convertActionVariantToColor = (variant = 'secondary')=>{
271
- switch(variant){
272
- case 'danger':
273
- return 'danger600';
274
- case 'secondary':
275
- return undefined;
276
- case 'success':
277
- return 'success600';
278
- default:
279
- return 'primary600';
280
- }
281
- };
282
- const convertActionVariantToIconColor = (variant = 'secondary')=>{
283
- switch(variant){
284
- case 'danger':
285
- return 'danger600';
286
- case 'secondary':
287
- return 'neutral500';
288
- case 'success':
289
- return 'success600';
290
- default:
291
- return 'primary600';
292
- }
293
- };
294
257
  const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
295
258
  const { formatMessage } = useIntl();
296
259
  const handleClose = async ()=>{
@@ -396,7 +359,10 @@ const transformData = (data)=>{
396
359
  const isCloning = useMatch(CLONE_PATH) !== null;
397
360
  const { id } = useParams();
398
361
  const { formatMessage } = useIntl();
399
- const canPublish = useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
362
+ const { canPublish, canReadFields } = useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
363
+ canPublish,
364
+ canReadFields
365
+ }));
400
366
  const { publish, isLoading } = useDocumentActions();
401
367
  const onPreview = usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
402
368
  const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = useLazyGetDraftRelationCountQuery();
@@ -410,6 +376,7 @@ const transformData = (data)=>{
410
376
  const setErrors = useForm('PublishAction', (state)=>state.setErrors);
411
377
  const formValues = useForm('PublishAction', ({ values })=>values);
412
378
  const resetForm = useForm('PublishAction', ({ resetForm })=>resetForm);
379
+ const { currentDocument: { components } } = useDocumentContext('PublishAction');
413
380
  // need to discriminate if the publish is coming from a relation modal or in the edit view
414
381
  const relationContext = useRelationModal('PublishAction', ()=>true, false);
415
382
  const fromRelationModal = relationContext != undefined;
@@ -525,21 +492,39 @@ const transformData = (data)=>{
525
492
  status: 'published'
526
493
  });
527
494
  if (errors) {
528
- toggleNotification({
529
- type: 'danger',
530
- message: formatMessage({
531
- id: 'content-manager.validation.error',
532
- defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
533
- })
495
+ const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
496
+ const attribute = schema.attributes[fieldName];
497
+ return attribute?.required && !(canReadFields ?? []).includes(fieldName);
534
498
  });
499
+ if (hasUnreadableRequiredField) {
500
+ toggleNotification({
501
+ type: 'danger',
502
+ message: formatMessage({
503
+ id: 'content-manager.validation.error.unreadable-required-field',
504
+ defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
505
+ })
506
+ });
507
+ } else {
508
+ toggleNotification({
509
+ type: 'danger',
510
+ message: formatMessage({
511
+ id: 'content-manager.validation.error',
512
+ defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
513
+ })
514
+ });
515
+ }
535
516
  return;
536
517
  }
518
+ const { data } = handleInvisibleAttributes(transformData(formValues), {
519
+ schema,
520
+ components
521
+ });
537
522
  const res = await publish({
538
523
  collectionType,
539
524
  model,
540
525
  documentId,
541
526
  params: currentDocumentMeta.params
542
- }, transformData(formValues));
527
+ }, data);
543
528
  // Reset form if successful
544
529
  if ('data' in res) {
545
530
  resetForm();
@@ -673,12 +658,14 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
673
658
  const isCloning = cloneMatch !== null;
674
659
  const { formatMessage } = useIntl();
675
660
  const { create, update, clone, isLoading } = useDocumentActions();
661
+ const { currentDocument: { components } } = useDocumentContext('UpdateAction');
676
662
  const [{ rawQuery }] = useQueryParams();
677
663
  const onPreview = usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
678
664
  const { getInitialFormValues } = useDoc();
679
665
  const isSubmitting = useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
680
666
  const modified = useForm('UpdateAction', ({ modified })=>modified);
681
667
  const setSubmitting = useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
668
+ const initialValues = useForm('UpdateAction', ({ initialValues })=>initialValues);
682
669
  const document = useForm('UpdateAction', ({ values })=>values);
683
670
  const validate = useForm('UpdateAction', (state)=>state.validate);
684
671
  const setErrors = useForm('UpdateAction', (state)=>state.setErrors);
@@ -686,6 +673,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
686
673
  const dispatch = useRelationModal('UpdateAction', (state)=>state.dispatch);
687
674
  // need to discriminate if the update is coming from a relation modal or in the edit view
688
675
  const relationContext = useRelationModal('UpdateAction', ()=>true, false);
676
+ const relationalModalSchema = useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
689
677
  const fieldToConnect = useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
690
678
  const fieldToConnectUID = useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
691
679
  const documentHistory = useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
@@ -703,6 +691,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
703
691
  }, {
704
692
  skip: !parentDocumentMetaToUpdate
705
693
  });
694
+ const { schema } = useDoc();
706
695
  const handleUpdate = React.useCallback(async ()=>{
707
696
  setSubmitting(true);
708
697
  try {
@@ -739,22 +728,32 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
739
728
  setErrors(formatValidationErrors(res.error));
740
729
  }
741
730
  } else if (documentId || collectionType === SINGLE_TYPES) {
731
+ const { data } = handleInvisibleAttributes(transformData(document), {
732
+ schema: fromRelationModal ? relationalModalSchema : schema,
733
+ initialValues,
734
+ components
735
+ });
742
736
  const res = await update({
743
737
  collectionType,
744
738
  model,
745
739
  documentId,
746
740
  params: currentDocumentMeta.params
747
- }, transformData(document));
741
+ }, data);
748
742
  if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
749
743
  setErrors(formatValidationErrors(res.error));
750
744
  } else {
751
745
  resetForm();
752
746
  }
753
747
  } else {
748
+ const { data } = handleInvisibleAttributes(transformData(document), {
749
+ schema: fromRelationModal ? relationalModalSchema : schema,
750
+ initialValues,
751
+ components
752
+ });
754
753
  const res = await create({
755
754
  model,
756
755
  params: currentDocumentMeta.params
757
- }, transformData(document));
756
+ }, data);
758
757
  if ('data' in res && collectionType !== SINGLE_TYPES) {
759
758
  if (fromRelationModal) {
760
759
  const createdRelation = {
@@ -855,7 +854,11 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
855
854
  fieldToConnectUID,
856
855
  updateDocumentMutation,
857
856
  formatAPIError,
858
- onPreview
857
+ onPreview,
858
+ initialValues,
859
+ schema,
860
+ components,
861
+ relationalModalSchema
859
862
  ]);
860
863
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
861
864
  React.useEffect(()=>{