@strapi/content-manager 0.0.0-experimental.25f7de53c1fc990bbb86d4aa43c379acfa838064 → 0.0.0-experimental.267375bdc00aa57de5e78acd345a838d21a63676
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/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 +5 -1
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +5 -1
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentContext.js.map +1 -1
- package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +81 -74
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +82 -75
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +230 -28
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +232 -30
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +19 -33
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +19 -33
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +128 -55
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +128 -55
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +91 -51
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +93 -53
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +20 -24
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +20 -24
- package/dist/admin/pages/EditView/components/FormLayout.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/src/components/ConfigurationForm/Fields.d.ts +6 -4
- package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
- package/dist/admin/translations/en.json.js +3 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +3 -1
- package/dist/admin/translations/en.json.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/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/index.d.ts +1 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/package.json +11 -8
@@ -6,6 +6,9 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
6
|
var designSystem = require('@strapi/design-system');
|
7
7
|
var Icons = require('@strapi/icons');
|
8
8
|
var mapValues = require('lodash/fp/mapValues');
|
9
|
+
var get = require('lodash/get');
|
10
|
+
var merge = require('lodash/merge');
|
11
|
+
var set = require('lodash/set');
|
9
12
|
var reactIntl = require('react-intl');
|
10
13
|
var reactRouterDom = require('react-router-dom');
|
11
14
|
var styledComponents = require('styled-components');
|
@@ -20,6 +23,7 @@ var router = require('../../../router.js');
|
|
20
23
|
var documents = require('../../../services/documents.js');
|
21
24
|
var api = require('../../../utils/api.js');
|
22
25
|
var translations = require('../../../utils/translations.js');
|
26
|
+
var RelationModal = require('./FormInputs/Relations/RelationModal.js');
|
23
27
|
|
24
28
|
function _interopNamespaceDefault(e) {
|
25
29
|
var n = Object.create(null);
|
@@ -40,6 +44,38 @@ function _interopNamespaceDefault(e) {
|
|
40
44
|
|
41
45
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
42
46
|
|
47
|
+
const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
|
48
|
+
/*
|
49
|
+
* Check if the fieldToConnect is already present in the parentDataToUpdate.
|
50
|
+
* This happens in particular when in the parentDocument you have created
|
51
|
+
* a new component without saving.
|
52
|
+
*/ const isFieldPresent = !!get(parentDataToUpdate, fieldToConnect);
|
53
|
+
const fieldToConnectPath = isFieldPresent ? fieldToConnect : fieldToConnect.split('.').slice(0, -1).join('.');
|
54
|
+
const fieldToConnectValue = isFieldPresent ? {
|
55
|
+
connect: [
|
56
|
+
{
|
57
|
+
id: data.documentId,
|
58
|
+
documentId: data.documentId,
|
59
|
+
locale: data.locale
|
60
|
+
}
|
61
|
+
]
|
62
|
+
} : {
|
63
|
+
[fieldToConnect.split('.').pop()]: {
|
64
|
+
connect: [
|
65
|
+
{
|
66
|
+
id: data.documentId,
|
67
|
+
documentId: data.documentId,
|
68
|
+
locale: data.locale
|
69
|
+
}
|
70
|
+
],
|
71
|
+
disconnect: []
|
72
|
+
},
|
73
|
+
// In case the object was not present you need to pass the componentUID of the parent document
|
74
|
+
__component: fieldToConnectUID
|
75
|
+
};
|
76
|
+
const objectToConnect = set({}, fieldToConnectPath, fieldToConnectValue);
|
77
|
+
return merge(parentDataToUpdate, objectToConnect);
|
78
|
+
};
|
43
79
|
const DocumentActions = ({ actions })=>{
|
44
80
|
const { formatMessage } = reactIntl.useIntl();
|
45
81
|
const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
|
@@ -381,7 +417,10 @@ const transformData = (data)=>{
|
|
381
417
|
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
382
418
|
const { id } = reactRouterDom.useParams();
|
383
419
|
const { formatMessage } = reactIntl.useIntl();
|
384
|
-
const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>
|
420
|
+
const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
|
421
|
+
canPublish,
|
422
|
+
canReadFields
|
423
|
+
}));
|
385
424
|
const { publish, isLoading } = useDocumentActions.useDocumentActions();
|
386
425
|
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
387
426
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
|
@@ -395,7 +434,17 @@ const transformData = (data)=>{
|
|
395
434
|
const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
|
396
435
|
const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
|
397
436
|
const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
|
437
|
+
// need to discriminate if the publish is coming from a relation modal or in the edit view
|
438
|
+
const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
|
439
|
+
const fromRelationModal = relationContext != undefined;
|
440
|
+
const dispatch = RelationModal.useRelationModal('PublishAction', (state)=>state.dispatch);
|
441
|
+
const fieldToConnect = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
|
442
|
+
const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
443
|
+
const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
|
444
|
+
const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
|
398
445
|
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
|
446
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
447
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
399
448
|
const idToPublish = currentDocumentMeta.documentId || id;
|
400
449
|
React__namespace.useEffect(()=>{
|
401
450
|
if (isErrorDraftRelations) {
|
@@ -479,6 +528,16 @@ const transformData = (data)=>{
|
|
479
528
|
model,
|
480
529
|
currentDocumentMeta.params
|
481
530
|
]);
|
531
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
532
|
+
const parentDocumentData = useDocument.useDocument({
|
533
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
534
|
+
model: parentDocumentMetaToUpdate?.model,
|
535
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
536
|
+
params: parentDocumentMetaToUpdate?.params
|
537
|
+
}, {
|
538
|
+
skip: !parentDocumentMetaToUpdate
|
539
|
+
});
|
540
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
482
541
|
const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
|
483
542
|
if (!schema?.options?.draftAndPublish) {
|
484
543
|
return null;
|
@@ -490,13 +549,27 @@ const transformData = (data)=>{
|
|
490
549
|
status: 'published'
|
491
550
|
});
|
492
551
|
if (errors) {
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
id: 'content-manager.validation.error',
|
497
|
-
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
498
|
-
})
|
552
|
+
const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
|
553
|
+
const attribute = schema.attributes[fieldName];
|
554
|
+
return attribute?.required && !(canReadFields ?? []).includes(fieldName);
|
499
555
|
});
|
556
|
+
if (hasUnreadableRequiredField) {
|
557
|
+
toggleNotification({
|
558
|
+
type: 'danger',
|
559
|
+
message: formatMessage({
|
560
|
+
id: 'content-manager.validation.error.unreadable-required-field',
|
561
|
+
defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
|
562
|
+
})
|
563
|
+
});
|
564
|
+
} else {
|
565
|
+
toggleNotification({
|
566
|
+
type: 'danger',
|
567
|
+
message: formatMessage({
|
568
|
+
id: 'content-manager.validation.error',
|
569
|
+
defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
|
570
|
+
})
|
571
|
+
});
|
572
|
+
}
|
500
573
|
return;
|
501
574
|
}
|
502
575
|
const res = await publish({
|
@@ -512,11 +585,59 @@ const transformData = (data)=>{
|
|
512
585
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
513
586
|
/**
|
514
587
|
* TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
|
515
|
-
*/ if (idToPublish === 'create') {
|
588
|
+
*/ if (idToPublish === 'create' && !fromRelationModal) {
|
516
589
|
navigate({
|
517
590
|
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
518
591
|
search: rawQuery
|
519
592
|
});
|
593
|
+
} else if (fromRelationModal) {
|
594
|
+
const newRelation = {
|
595
|
+
documentId: res.data.documentId,
|
596
|
+
collectionType,
|
597
|
+
model,
|
598
|
+
params: currentDocumentMeta.params
|
599
|
+
};
|
600
|
+
/*
|
601
|
+
* Update, if needed, the parent relation with the newly published document.
|
602
|
+
* Check if in history we have the parent relation otherwise use the
|
603
|
+
* rootDocument
|
604
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
|
605
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
606
|
+
const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
|
607
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
608
|
+
try {
|
609
|
+
const updateRes = await updateDocumentMutation({
|
610
|
+
collectionType: metaDocumentToUpdate.collectionType,
|
611
|
+
model: metaDocumentToUpdate.model,
|
612
|
+
documentId: metaDocumentToUpdate.collectionType !== collections.SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
|
613
|
+
params: metaDocumentToUpdate.params,
|
614
|
+
data: dataToUpdate
|
615
|
+
});
|
616
|
+
if ('error' in updateRes) {
|
617
|
+
toggleNotification({
|
618
|
+
type: 'danger',
|
619
|
+
message: formatAPIError(updateRes.error)
|
620
|
+
});
|
621
|
+
return;
|
622
|
+
}
|
623
|
+
} catch (err) {
|
624
|
+
toggleNotification({
|
625
|
+
type: 'danger',
|
626
|
+
message: formatMessage({
|
627
|
+
id: 'notification.error',
|
628
|
+
defaultMessage: 'An error occurred'
|
629
|
+
})
|
630
|
+
});
|
631
|
+
throw err;
|
632
|
+
}
|
633
|
+
}
|
634
|
+
dispatch({
|
635
|
+
type: 'GO_TO_CREATED_RELATION',
|
636
|
+
payload: {
|
637
|
+
document: newRelation,
|
638
|
+
shouldBypassConfirmation: true
|
639
|
+
}
|
640
|
+
});
|
520
641
|
}
|
521
642
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
522
643
|
setErrors(formatValidationErrors(res.error));
|
@@ -592,14 +713,34 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
592
713
|
const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
|
593
714
|
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
594
715
|
const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
|
716
|
+
const { getInitialFormValues } = useDocument.useDoc();
|
595
717
|
const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
|
596
718
|
const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
|
597
719
|
const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
|
598
720
|
const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
|
599
721
|
const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
|
600
722
|
const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
|
601
|
-
const resetForm = strapiAdmin.useForm('
|
723
|
+
const resetForm = strapiAdmin.useForm('UpdateAction', ({ resetForm })=>resetForm);
|
724
|
+
const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
|
725
|
+
// need to discriminate if the update is coming from a relation modal or in the edit view
|
726
|
+
const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
|
727
|
+
const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
|
728
|
+
const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
|
729
|
+
const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
|
730
|
+
const rootDocumentMeta = RelationModal.useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
|
731
|
+
const fromRelationModal = relationContext != undefined;
|
602
732
|
const { currentDocumentMeta } = useDocumentContext.useDocumentContext('UpdateAction');
|
733
|
+
const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
|
734
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
735
|
+
const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
|
736
|
+
const parentDocumentData = useDocument.useDocument({
|
737
|
+
documentId: parentDocumentMetaToUpdate?.documentId,
|
738
|
+
model: parentDocumentMetaToUpdate?.model,
|
739
|
+
collectionType: parentDocumentMetaToUpdate?.collectionType,
|
740
|
+
params: parentDocumentMetaToUpdate?.params
|
741
|
+
}, {
|
742
|
+
skip: !parentDocumentMetaToUpdate
|
743
|
+
});
|
603
744
|
const handleUpdate = React__namespace.useCallback(async ()=>{
|
604
745
|
setSubmitting(true);
|
605
746
|
try {
|
@@ -653,13 +794,64 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
653
794
|
params: currentDocumentMeta.params
|
654
795
|
}, transformData(document));
|
655
796
|
if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
797
|
+
if (fromRelationModal) {
|
798
|
+
const createdRelation = {
|
799
|
+
documentId: res.data.documentId,
|
800
|
+
collectionType,
|
801
|
+
model,
|
802
|
+
params: currentDocumentMeta.params
|
803
|
+
};
|
804
|
+
/*
|
805
|
+
* Update, if needed, the parent relation with the newly published document.
|
806
|
+
* Check if in history we have the parent relation otherwise use the
|
807
|
+
* rootDocument
|
808
|
+
*/ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
|
809
|
+
const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
|
810
|
+
const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
|
811
|
+
try {
|
812
|
+
const updateRes = await updateDocumentMutation({
|
813
|
+
collectionType: parentDocumentMetaToUpdate.collectionType,
|
814
|
+
model: parentDocumentMetaToUpdate.model,
|
815
|
+
documentId: parentDocumentMetaToUpdate.collectionType !== collections.SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
|
816
|
+
params: parentDocumentMetaToUpdate.params,
|
817
|
+
data: {
|
818
|
+
...dataToUpdate
|
819
|
+
}
|
820
|
+
});
|
821
|
+
if ('error' in updateRes) {
|
822
|
+
toggleNotification({
|
823
|
+
type: 'danger',
|
824
|
+
message: formatAPIError(updateRes.error)
|
825
|
+
});
|
826
|
+
return;
|
827
|
+
}
|
828
|
+
} catch (err) {
|
829
|
+
toggleNotification({
|
830
|
+
type: 'danger',
|
831
|
+
message: formatMessage({
|
832
|
+
id: 'notification.error',
|
833
|
+
defaultMessage: 'An error occurred'
|
834
|
+
})
|
835
|
+
});
|
836
|
+
throw err;
|
837
|
+
}
|
838
|
+
}
|
839
|
+
dispatch({
|
840
|
+
type: 'GO_TO_CREATED_RELATION',
|
841
|
+
payload: {
|
842
|
+
document: createdRelation,
|
843
|
+
shouldBypassConfirmation: true
|
844
|
+
}
|
845
|
+
});
|
846
|
+
} else {
|
847
|
+
navigate({
|
848
|
+
pathname: `../${res.data.documentId}`,
|
849
|
+
search: rawQuery
|
850
|
+
}, {
|
851
|
+
replace: true,
|
852
|
+
relative: 'path'
|
853
|
+
});
|
854
|
+
}
|
663
855
|
} else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
664
856
|
setErrors(formatValidationErrors(res.error));
|
665
857
|
}
|
@@ -671,26 +863,36 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
671
863
|
}
|
672
864
|
}
|
673
865
|
}, [
|
866
|
+
setSubmitting,
|
867
|
+
modified,
|
868
|
+
validate,
|
869
|
+
isCloning,
|
870
|
+
documentId,
|
871
|
+
collectionType,
|
872
|
+
toggleNotification,
|
873
|
+
formatMessage,
|
674
874
|
clone,
|
875
|
+
model,
|
675
876
|
cloneMatch?.params.origin,
|
676
|
-
collectionType,
|
677
|
-
create,
|
678
877
|
currentDocumentMeta.params,
|
679
878
|
document,
|
680
|
-
documentId,
|
681
|
-
formatMessage,
|
682
|
-
formatValidationErrors,
|
683
|
-
isCloning,
|
684
|
-
model,
|
685
|
-
modified,
|
686
879
|
navigate,
|
687
880
|
rawQuery,
|
688
|
-
resetForm,
|
689
881
|
setErrors,
|
690
|
-
|
691
|
-
toggleNotification,
|
882
|
+
formatValidationErrors,
|
692
883
|
update,
|
693
|
-
|
884
|
+
resetForm,
|
885
|
+
create,
|
886
|
+
fromRelationModal,
|
887
|
+
fieldToConnect,
|
888
|
+
documentHistory,
|
889
|
+
parentDocumentMetaToUpdate,
|
890
|
+
dispatch,
|
891
|
+
getInitialFormValues,
|
892
|
+
parentDocumentData,
|
893
|
+
fieldToConnectUID,
|
894
|
+
updateDocumentMutation,
|
895
|
+
formatAPIError,
|
694
896
|
onPreview
|
695
897
|
]);
|
696
898
|
// Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
|