@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.
- package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/components/LeftMenu.js +34 -30
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +36 -32
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +24 -3
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +25 -4
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +6 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.mjs +7 -1
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +7 -3
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +7 -3
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +92 -75
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +93 -76
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +57 -54
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +58 -55
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +13 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +14 -3
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +155 -106
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +158 -109
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +103 -0
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +103 -1
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +77 -0
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +78 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +1 -0
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +1 -0
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.js +13 -3
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/services/documents.js +2 -2
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +2 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
- package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
- package/dist/admin/src/services/documents.d.ts +7 -1
- package/dist/admin/src/utils/validation.d.ts +1 -0
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +6 -1
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +6 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/utils/validation.js +17 -6
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/admin/utils/validation.mjs +17 -6
- package/dist/admin/utils/validation.mjs.map +1 -1
- package/dist/server/controllers/content-types.js +11 -1
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +11 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/relations.js +2 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +2 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/index.js +14 -2
- package/dist/server/controllers/validation/index.js.map +1 -1
- package/dist/server/controllers/validation/index.mjs +14 -2
- package/dist/server/controllers/validation/index.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +3 -0
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +3 -0
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/services/data-mapper.js +4 -1
- package/dist/server/services/data-mapper.js.map +1 -1
- package/dist/server/services/data-mapper.mjs +4 -1
- package/dist/server/services/data-mapper.mjs.map +1 -1
- package/dist/server/services/document-manager.js +8 -1
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +8 -1
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +3 -1
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +3 -1
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/utils/configuration/attributes.js +1 -1
- package/dist/server/services/utils/configuration/attributes.js.map +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
- package/dist/server/services/utils/configuration/layouts.js +1 -1
- package/dist/server/services/utils/configuration/layouts.js.map +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.js +8 -0
- package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
- package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
- package/dist/server/services/utils/populate.js +11 -0
- package/dist/server/services/utils/populate.js.map +1 -1
- package/dist/server/services/utils/populate.mjs +11 -0
- package/dist/server/services/utils/populate.mjs.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/index.d.ts +6 -1
- package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/data-mapper.d.ts +1 -0
- package/dist/server/src/services/data-mapper.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +0 -1
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- 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 {
|
|
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(
|
|
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
|
-
|
|
227
|
-
|
|
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__*/
|
|
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 })=>
|
|
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
|
-
|
|
529
|
-
|
|
530
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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(()=>{
|