@strapi/content-manager 5.48.1 → 5.49.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.
- package/dist/admin/components/ActionsDrawer.js +3 -2
- package/dist/admin/components/ActionsDrawer.js.map +1 -1
- package/dist/admin/components/ComponentIcon.js +4 -3
- package/dist/admin/components/ComponentIcon.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/EditFieldForm.js +3 -2
- package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.js +3 -2
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Form.js +7 -3
- package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
- package/dist/admin/components/LeftMenu.js +3 -2
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/RelativeTime.js +3 -2
- package/dist/admin/components/RelativeTime.js.map +1 -1
- package/dist/admin/components/Widgets.js +3 -2
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/features/DocumentRBAC.js +3 -2
- package/dist/admin/features/DocumentRBAC.js.map +1 -1
- package/dist/admin/history/components/VersionContent.js +7 -3
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +3 -2
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionInputRenderer.js +3 -2
- package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
- package/dist/admin/history/pages/History.js +3 -2
- package/dist/admin/history/pages/History.js.map +1 -1
- package/dist/admin/history/routes.js +3 -2
- package/dist/admin/history/routes.js.map +1 -1
- package/dist/admin/hooks/useContentTypeSchema.js +3 -2
- package/dist/admin/hooks/useContentTypeSchema.js.map +1 -1
- package/dist/admin/hooks/useDocument.js +3 -2
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +3 -2
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentContext.js +3 -2
- package/dist/admin/hooks/useDocumentContext.js.map +1 -1
- package/dist/admin/hooks/useDocumentLayout.js +3 -2
- package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
- package/dist/admin/hooks/useDragAndDrop.js +3 -2
- package/dist/admin/hooks/useDragAndDrop.js.map +1 -1
- package/dist/admin/hooks/useKeyboardDragAndDrop.js +3 -2
- package/dist/admin/hooks/useKeyboardDragAndDrop.js.map +1 -1
- package/dist/admin/hooks/useOnce.js +3 -2
- package/dist/admin/hooks/useOnce.js.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.js +7 -2
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
- package/dist/admin/pages/ComponentConfigurationPage.js +3 -2
- package/dist/admin/pages/ComponentConfigurationPage.js.map +1 -1
- package/dist/admin/pages/EditConfigurationPage.js +3 -2
- package/dist/admin/pages/EditConfigurationPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +3 -2
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +80 -39
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +67 -33
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +3 -2
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js +4 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +4 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +7 -3
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +7 -3
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +8 -4
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +3 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js +15 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +3 -2
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/Header.js +3 -2
- package/dist/admin/pages/EditView/components/Header.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +3 -2
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/Panels.js +3 -2
- package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +5 -1
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.js +35 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.js.map +1 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs +33 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +3 -2
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +3 -2
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +3 -2
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Settings.js +3 -2
- package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js +3 -2
- package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +3 -2
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js +3 -2
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +3 -2
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +3 -2
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +3 -2
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.js +3 -2
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js +7 -3
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellValue.js +7 -2
- package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/Relations.js +3 -2
- package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
- package/dist/admin/preview/components/InputPopover.js +3 -2
- package/dist/admin/preview/components/InputPopover.js.map +1 -1
- package/dist/admin/preview/hooks/usePreviewInputManager.js +3 -2
- package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -1
- package/dist/admin/preview/pages/Preview.js +3 -2
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/routes.js +3 -2
- package/dist/admin/preview/routes.js.map +1 -1
- package/dist/admin/src/pages/EditView/utils/keyboardShortcuts.d.ts +18 -0
- package/dist/admin/translations/cs.json.js +2 -1
- package/dist/admin/translations/cs.json.js.map +1 -1
- package/dist/admin/translations/cs.json.mjs +2 -1
- package/dist/admin/translations/cs.json.mjs.map +1 -1
- package/dist/admin/translations/de.json.js +2 -1
- package/dist/admin/translations/de.json.js.map +1 -1
- package/dist/admin/translations/de.json.mjs +2 -1
- package/dist/admin/translations/de.json.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +2 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +2 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +2 -1
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +2 -1
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +2 -1
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +2 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/translations/nl.json.js +2 -1
- package/dist/admin/translations/nl.json.js.map +1 -1
- package/dist/admin/translations/nl.json.mjs +2 -1
- package/dist/admin/translations/nl.json.mjs.map +1 -1
- package/dist/admin/translations/pl.json.js +2 -1
- package/dist/admin/translations/pl.json.js.map +1 -1
- package/dist/admin/translations/pl.json.mjs +2 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -1
- package/dist/admin/translations/sk.json.js +2 -1
- package/dist/admin/translations/sk.json.js.map +1 -1
- package/dist/admin/translations/sk.json.mjs +2 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -1
- package/dist/admin/utils/objects.js +9 -4
- package/dist/admin/utils/objects.js.map +1 -1
- package/dist/admin/utils/validation.js +7 -3
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/server/controllers/utils/clone.js +5 -1
- package/dist/server/controllers/utils/clone.js.map +1 -1
- package/dist/server/controllers/utils/clone.mjs.map +1 -1
- package/dist/server/controllers/validation/index.js +6 -2
- package/dist/server/controllers/validation/index.js.map +1 -1
- package/dist/server/homepage/services/homepage.js +6 -1
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +6 -1
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/mcp/handlers/collection-handlers.js +15 -18
- package/dist/server/mcp/handlers/collection-handlers.js.map +1 -1
- package/dist/server/mcp/handlers/collection-handlers.mjs +16 -19
- package/dist/server/mcp/handlers/collection-handlers.mjs.map +1 -1
- package/dist/server/mcp/handlers/single-type-handlers.js +12 -12
- package/dist/server/mcp/handlers/single-type-handlers.js.map +1 -1
- package/dist/server/mcp/handlers/single-type-handlers.mjs +13 -13
- package/dist/server/mcp/handlers/single-type-handlers.mjs.map +1 -1
- package/dist/server/mcp/register-content-manager-mcp-tools.js +4 -1
- package/dist/server/mcp/register-content-manager-mcp-tools.js.map +1 -1
- package/dist/server/mcp/register-content-manager-mcp-tools.mjs +4 -1
- package/dist/server/mcp/register-content-manager-mcp-tools.mjs.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.js +108 -0
- package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -0
- package/dist/server/mcp/sanitizers/shape-relations.mjs +103 -0
- package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -0
- package/dist/server/mcp/schemas/data-schema.js +0 -3
- package/dist/server/mcp/schemas/data-schema.js.map +1 -1
- package/dist/server/mcp/schemas/data-schema.mjs +0 -3
- package/dist/server/mcp/schemas/data-schema.mjs.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.js +30 -4
- package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.mjs +30 -4
- package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
- package/dist/server/mcp/utils.js +30 -3
- package/dist/server/mcp/utils.js.map +1 -1
- package/dist/server/mcp/utils.mjs +30 -4
- package/dist/server/mcp/utils.mjs.map +1 -1
- package/dist/server/middlewares/routing.js +5 -1
- package/dist/server/middlewares/routing.js.map +1 -1
- package/dist/server/services/populate-builder.js.map +1 -1
- package/dist/server/services/populate-builder.mjs.map +1 -1
- package/dist/server/services/uid.js +9 -4
- package/dist/server/services/uid.js.map +1 -1
- package/dist/server/services/utils/configuration/attributes.js +14 -10
- package/dist/server/services/utils/configuration/attributes.js.map +1 -1
- package/dist/server/services/utils/configuration/layouts.js +8 -4
- package/dist/server/services/utils/configuration/layouts.js.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.js +19 -15
- package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
- package/dist/server/services/utils/configuration/settings.js +5 -1
- package/dist/server/services/utils/configuration/settings.js.map +1 -1
- package/dist/server/services/utils/draft.js +5 -1
- package/dist/server/services/utils/draft.js.map +1 -1
- package/dist/server/services/utils/populate.js +8 -4
- package/dist/server/services/utils/populate.js.map +1 -1
- package/dist/server/services/utils/populate.mjs.map +1 -1
- package/dist/server/services/utils/store.js +9 -5
- package/dist/server/services/utils/store.js.map +1 -1
- package/dist/server/src/controllers/utils/clone.d.ts +1 -1
- package/dist/server/src/controllers/utils/clone.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +3 -1
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/mcp/handlers/collection-handlers.d.ts.map +1 -1
- package/dist/server/src/mcp/handlers/single-type-handlers.d.ts.map +1 -1
- package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts +2 -1
- package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts.map +1 -1
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts +38 -0
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/data-schema.d.ts +0 -3
- package/dist/server/src/mcp/schemas/data-schema.d.ts.map +1 -1
- package/dist/server/src/mcp/schemas/output-schemas.d.ts +2 -2
- package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
- package/dist/server/src/mcp/types.d.ts +2 -2
- package/dist/server/src/mcp/types.d.ts.map +1 -1
- package/dist/server/src/mcp/utils.d.ts +19 -1
- package/dist/server/src/mcp/utils.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +3 -1
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/populate-builder.d.ts +3 -1
- package/dist/server/src/services/populate-builder.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts +3 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -21,6 +21,7 @@ import { useGetDraftRelationCountQuery as useLazyGetDraftRelationCountQuery, use
|
|
|
21
21
|
import { buildValidParams, isBaseQueryError } from '../../../utils/api.mjs';
|
|
22
22
|
import { getTranslation } from '../../../utils/translations.mjs';
|
|
23
23
|
import { handleInvisibleAttributes } from '../utils/data.mjs';
|
|
24
|
+
import { getEditViewShortcut } from '../utils/keyboardShortcuts.mjs';
|
|
24
25
|
import { useRelationModal } from './FormInputs/Relations/RelationModal.mjs';
|
|
25
26
|
|
|
26
27
|
const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
|
|
@@ -71,18 +72,23 @@ const DocumentActions = ({ actions })=>{
|
|
|
71
72
|
return null;
|
|
72
73
|
}
|
|
73
74
|
const addHintTooltip = (action, children)=>{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
if (action.disabled) {
|
|
76
|
+
return children;
|
|
77
|
+
}
|
|
78
|
+
const hint = action.type === 'publish' ? formatMessage({
|
|
79
|
+
id: 'content-manager.containers.EditView.publishHint',
|
|
80
|
+
defaultMessage: 'Ctrl / Cmd + Shift + Enter to publish'
|
|
81
|
+
}) : formatMessage({
|
|
82
|
+
id: 'content-manager.containers.EditView.saveHint',
|
|
83
|
+
defaultMessage: 'Ctrl / Cmd + Enter to save'
|
|
84
|
+
});
|
|
85
|
+
return /*#__PURE__*/ jsx(Tooltip, {
|
|
86
|
+
label: hint,
|
|
81
87
|
children: /*#__PURE__*/ jsx(Flex, {
|
|
82
88
|
width: "100%",
|
|
83
89
|
children: children
|
|
84
90
|
})
|
|
85
|
-
})
|
|
91
|
+
});
|
|
86
92
|
};
|
|
87
93
|
const primaryActionContent = /*#__PURE__*/ jsxs(Fragment, {
|
|
88
94
|
children: [
|
|
@@ -129,15 +135,15 @@ const DocumentActions = ({ actions })=>{
|
|
|
129
135
|
alignItems: "stretch",
|
|
130
136
|
direction: "column",
|
|
131
137
|
children: secondaryAction.type === 'publish' ? /*#__PURE__*/ jsx(tours.contentManager.Publish, {
|
|
132
|
-
children: /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
138
|
+
children: addHintTooltip(secondaryAction, /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
133
139
|
...secondaryAction,
|
|
134
140
|
variant: secondaryAction.variant || 'secondary'
|
|
135
|
-
})
|
|
136
|
-
}) : /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
141
|
+
}))
|
|
142
|
+
}) : addHintTooltip(secondaryAction, /*#__PURE__*/ jsx(DocumentActionButton, {
|
|
137
143
|
...secondaryAction,
|
|
138
144
|
variant: secondaryAction.variant || 'secondary',
|
|
139
145
|
buttonType: "submit"
|
|
140
|
-
})
|
|
146
|
+
}))
|
|
141
147
|
}) : null
|
|
142
148
|
]
|
|
143
149
|
});
|
|
@@ -659,17 +665,28 @@ const transformData = (data)=>{
|
|
|
659
665
|
// see RFC "Count draft relations" in Notion
|
|
660
666
|
const enableDraftRelationsCount = false;
|
|
661
667
|
const hasDraftRelations = enableDraftRelationsCount;
|
|
662
|
-
|
|
668
|
+
/**
|
|
669
|
+
* Disabled when:
|
|
670
|
+
* - currently if you're cloning a document we don't support publish & clone at the same time.
|
|
671
|
+
* - the form is submitting
|
|
672
|
+
* - the active tab is the published tab
|
|
673
|
+
* - the document is already published & not modified
|
|
674
|
+
* - the document is being created & not modified
|
|
675
|
+
* - the user doesn't have the permission to publish
|
|
676
|
+
*/ const isDisabled = isCloning || isSubmitting || isLoadingDraftRelations || activeTab === 'published' || !modified && isDocumentPublished || !modified && !document?.documentId || !canPublish;
|
|
677
|
+
// Publish on CMD+Shift+Enter (macOS) / CTRL+Shift+Enter (Windows/Linux).
|
|
678
|
+
// Saving a draft (CMD/CTRL+Enter) is handled by the UpdateAction.
|
|
663
679
|
React.useEffect(()=>{
|
|
664
680
|
if (!schema?.options?.draftAndPublish) {
|
|
665
681
|
return;
|
|
666
682
|
}
|
|
667
683
|
const handleKeyDown = (e)=>{
|
|
668
|
-
if (e
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
684
|
+
if (getEditViewShortcut(e) !== 'publish') {
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
687
|
+
e.preventDefault();
|
|
688
|
+
if (!isDisabled && !hasDraftRelations) {
|
|
689
|
+
performPublish();
|
|
673
690
|
}
|
|
674
691
|
};
|
|
675
692
|
window.addEventListener('keydown', handleKeyDown);
|
|
@@ -678,6 +695,7 @@ const transformData = (data)=>{
|
|
|
678
695
|
};
|
|
679
696
|
}, [
|
|
680
697
|
hasDraftRelations,
|
|
698
|
+
isDisabled,
|
|
681
699
|
performPublish,
|
|
682
700
|
schema?.options?.draftAndPublish
|
|
683
701
|
]);
|
|
@@ -692,15 +710,7 @@ const transformData = (data)=>{
|
|
|
692
710
|
'preview',
|
|
693
711
|
'relation-modal'
|
|
694
712
|
],
|
|
695
|
-
|
|
696
|
-
* Disabled when:
|
|
697
|
-
* - currently if you're cloning a document we don't support publish & clone at the same time.
|
|
698
|
-
* - the form is submitting
|
|
699
|
-
* - the active tab is the published tab
|
|
700
|
-
* - the document is already published & not modified
|
|
701
|
-
* - the document is being created & not modified
|
|
702
|
-
* - the user doesn't have the permission to publish
|
|
703
|
-
*/ disabled: isCloning || isSubmitting || isLoadingDraftRelations || activeTab === 'published' || !modified && isDocumentPublished || !modified && !document?.documentId || !canPublish,
|
|
713
|
+
disabled: isDisabled,
|
|
704
714
|
label: formatMessage({
|
|
705
715
|
id: 'app.utils.publish',
|
|
706
716
|
defaultMessage: 'Publish'
|
|
@@ -779,6 +789,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
779
789
|
const { schema } = useDoc();
|
|
780
790
|
const suitableSchema = fromRelationModal ? relationalModalSchema : schema;
|
|
781
791
|
const hasDraftAndPublished = suitableSchema?.options?.draftAndPublish ?? false;
|
|
792
|
+
/**
|
|
793
|
+
* Disabled when:
|
|
794
|
+
* - the form is submitting
|
|
795
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
|
796
|
+
* - the active tab is the published tab
|
|
797
|
+
*/ const isDisabled = isSubmitting || !modified && !isCloning || activeTab === 'published';
|
|
782
798
|
const handleUpdate = async ()=>{
|
|
783
799
|
setSubmitting(true);
|
|
784
800
|
try {
|
|
@@ -928,14 +944,32 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
|
928
944
|
}
|
|
929
945
|
}
|
|
930
946
|
};
|
|
947
|
+
// Save a draft on CMD+Enter (macOS) / CTRL+Enter (Windows/Linux), with CMD/CTRL+S as an alias.
|
|
948
|
+
// Publishing (CMD/CTRL+Shift+Enter) is handled by the PublishAction.
|
|
949
|
+
// `handleUpdate` is recreated on every render, so we read the latest version (and the latest
|
|
950
|
+
// disabled state) through refs and register the listener only once.
|
|
951
|
+
const handleUpdateRef = React.useRef(handleUpdate);
|
|
952
|
+
handleUpdateRef.current = handleUpdate;
|
|
953
|
+
const isDisabledRef = React.useRef(isDisabled);
|
|
954
|
+
isDisabledRef.current = isDisabled;
|
|
955
|
+
React.useEffect(()=>{
|
|
956
|
+
const handleKeyDown = (e)=>{
|
|
957
|
+
if (getEditViewShortcut(e) !== 'save') {
|
|
958
|
+
return;
|
|
959
|
+
}
|
|
960
|
+
e.preventDefault();
|
|
961
|
+
if (!isDisabledRef.current) {
|
|
962
|
+
handleUpdateRef.current();
|
|
963
|
+
}
|
|
964
|
+
};
|
|
965
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
966
|
+
return ()=>{
|
|
967
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
968
|
+
};
|
|
969
|
+
}, []);
|
|
931
970
|
return {
|
|
932
971
|
loading: isLoading,
|
|
933
|
-
|
|
934
|
-
* Disabled when:
|
|
935
|
-
* - the form is submitting
|
|
936
|
-
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
|
937
|
-
* - the active tab is the published tab
|
|
938
|
-
*/ disabled: isSubmitting || !modified && !isCloning || activeTab === 'published',
|
|
972
|
+
disabled: isDisabled,
|
|
939
973
|
label: formatMessage({
|
|
940
974
|
id: 'global.save',
|
|
941
975
|
defaultMessage: 'Save'
|