UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

146 lines (145 loc) • 12.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "SaveDraft", { enumerable: true, get: function() { return SaveDraft; } }); const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); const _reacti18next = require("react-i18next"); const _useHotkey = /*#__PURE__*/ _interop_require_default(require("../../../hooks/useHotkey")); const _context = require("../../forms/Form/context"); const _Submit = /*#__PURE__*/ _interop_require_default(require("../../forms/Submit")); const _Config = require("../../utilities/Config"); const _DocumentInfo = require("../../utilities/DocumentInfo"); const _EditDepth = require("../../utilities/EditDepth"); const _Locale = require("../../utilities/Locale"); const _RenderCustomComponent = /*#__PURE__*/ _interop_require_default(require("../../utilities/RenderCustomComponent")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const baseClass = 'save-draft'; const DefaultSaveDraftButton = ({ disabled, label, saveDraft })=>{ const ref = (0, _react.useRef)(null); const editDepth = (0, _EditDepth.useEditDepth)(); (0, _useHotkey.default)({ cmdCtrlKey: true, editDepth, keyCodes: [ 's' ] }, (e)=>{ if (disabled) { return; } e.preventDefault(); e.stopPropagation(); if (ref?.current) { ref.current.click(); } }); return /*#__PURE__*/ _react.default.createElement(_Submit.default, { buttonId: "action-save-draft", buttonStyle: "secondary", className: baseClass, disabled: disabled, onClick: saveDraft, ref: ref, size: "small", type: "button" }, label); }; const SaveDraft = ({ CustomComponent })=>{ const { routes: { api }, serverURL } = (0, _Config.useConfig)(); const { submit } = (0, _context.useForm)(); const { id, collection, global } = (0, _DocumentInfo.useDocumentInfo)(); const modified = (0, _context.useFormModified)(); const { code: locale } = (0, _Locale.useLocale)(); const { t } = (0, _reacti18next.useTranslation)('version'); const canSaveDraft = modified; const saveDraft = (0, _react.useCallback)(async ()=>{ const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`; let action; let method = 'POST'; if (collection) { action = `${serverURL}${api}/${collection.slug}${id ? `/${id}` : ''}${search}`; if (id) method = 'PATCH'; } if (global) { action = `${serverURL}${api}/globals/${global.slug}${search}`; } await submit({ action, method, overrides: { _status: 'draft' }, skipValidation: true }); }, [ submit, collection, global, serverURL, api, locale, id ]); return /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.default, { CustomComponent: CustomComponent, DefaultComponent: DefaultSaveDraftButton, componentProps: { DefaultButton: DefaultSaveDraftButton, disabled: !canSaveDraft, label: t('saveDraft'), saveDraft } }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1NhdmVEcmFmdC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHVzZUhvdGtleSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VIb3RrZXknXG5pbXBvcnQgeyB1c2VGb3JtLCB1c2VGb3JtTW9kaWZpZWQgfSBmcm9tICcuLi8uLi9mb3Jtcy9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgRm9ybVN1Ym1pdCBmcm9tICcuLi8uLi9mb3Jtcy9TdWJtaXQnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUVkaXREZXB0aCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9FZGl0RGVwdGgnXG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvTG9jYWxlJ1xuaW1wb3J0IFJlbmRlckN1c3RvbUNvbXBvbmVudCBmcm9tICcuLi8uLi91dGlsaXRpZXMvUmVuZGVyQ3VzdG9tQ29tcG9uZW50J1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnc2F2ZS1kcmFmdCdcblxuZXhwb3J0IHR5cGUgQ3VzdG9tU2F2ZURyYWZ0QnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRUeXBlPFxuICBEZWZhdWx0U2F2ZURyYWZ0QnV0dG9uUHJvcHMgJiB7XG4gICAgRGVmYXVsdEJ1dHRvbjogUmVhY3QuQ29tcG9uZW50VHlwZTxEZWZhdWx0U2F2ZURyYWZ0QnV0dG9uUHJvcHM+XG4gIH1cbj5cbmV4cG9ydCB0eXBlIERlZmF1bHRTYXZlRHJhZnRCdXR0b25Qcm9wcyA9IHtcbiAgZGlzYWJsZWQ6IGJvb2xlYW5cbiAgbGFiZWw6IHN0cmluZ1xuICBzYXZlRHJhZnQ6ICgpID0+IHZvaWRcbn1cbmNvbnN0IERlZmF1bHRTYXZlRHJhZnRCdXR0b246IFJlYWN0LkZDPERlZmF1bHRTYXZlRHJhZnRCdXR0b25Qcm9wcz4gPSAoe1xuICBkaXNhYmxlZCxcbiAgbGFiZWwsXG4gIHNhdmVEcmFmdCxcbn0pID0+IHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuICBjb25zdCBlZGl0RGVwdGggPSB1c2VFZGl0RGVwdGgoKVxuXG4gIHVzZUhvdGtleSh7IGNtZEN0cmxLZXk6IHRydWUsIGVkaXREZXB0aCwga2V5Q29kZXM6IFsncyddIH0sIChlKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHJlZj8uY3VycmVudCkge1xuICAgICAgcmVmLmN1cnJlbnQuY2xpY2soKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gKFxuICAgIDxGb3JtU3VibWl0XG4gICAgICBidXR0b25JZD1cImFjdGlvbi1zYXZlLWRyYWZ0XCJcbiAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgIGNsYXNzTmFtZT17YmFzZUNsYXNzfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17c2F2ZURyYWZ0fVxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBzaXplPVwic21hbGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge2xhYmVsfVxuICAgIDwvRm9ybVN1Ym1pdD5cbiAgKVxufVxuXG50eXBlIFByb3BzID0ge1xuICBDdXN0b21Db21wb25lbnQ/OiBDdXN0b21TYXZlRHJhZnRCdXR0b25Qcm9wc1xufVxuZXhwb3J0IGNvbnN0IFNhdmVEcmFmdDogUmVhY3QuRkM8UHJvcHM+ID0gKHsgQ3VzdG9tQ29tcG9uZW50IH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhcGkgfSxcbiAgICBzZXJ2ZXJVUkwsXG4gIH0gPSB1c2VDb25maWcoKVxuICBjb25zdCB7IHN1Ym1pdCB9ID0gdXNlRm9ybSgpXG4gIGNvbnN0IHsgaWQsIGNvbGxlY3Rpb24sIGdsb2JhbCB9ID0gdXNlRG9jdW1lbnRJbmZvKClcbiAgY29uc3QgbW9kaWZpZWQgPSB1c2VGb3JtTW9kaWZpZWQoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndmVyc2lvbicpXG5cbiAgY29uc3QgY2FuU2F2ZURyYWZ0ID0gbW9kaWZpZWRcblxuICBjb25zdCBzYXZlRHJhZnQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gYD9sb2NhbGU9JHtsb2NhbGV9JmRlcHRoPTAmZmFsbGJhY2stbG9jYWxlPW51bGwmZHJhZnQ9dHJ1ZWBcbiAgICBsZXQgYWN0aW9uXG4gICAgbGV0IG1ldGhvZCA9ICdQT1NUJ1xuXG4gICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgIGFjdGlvbiA9IGAke3NlcnZlclVSTH0ke2FwaX0vJHtjb2xsZWN0aW9uLnNsdWd9JHtpZCA/IGAvJHtpZH1gIDogJyd9JHtzZWFyY2h9YFxuICAgICAgaWYgKGlkKSBtZXRob2QgPSAnUEFUQ0gnXG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgYWN0aW9uID0gYCR7c2VydmVyVVJMfSR7YXBpfS9nbG9iYWxzLyR7Z2xvYmFsLnNsdWd9JHtzZWFyY2h9YFxuICAgIH1cblxuICAgIGF3YWl0IHN1Ym1pdCh7XG4gICAgICBhY3Rpb24sXG4gICAgICBtZXRob2QsXG4gICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgX3N0YXR1czogJ2RyYWZ0JyxcbiAgICAgIH0sXG4gICAgICBza2lwVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICB9KVxuICB9LCBbc3VibWl0LCBjb2xsZWN0aW9uLCBnbG9iYWwsIHNlcnZlclVSTCwgYXBpLCBsb2NhbGUsIGlkXSlcblxuICByZXR1cm4gKFxuICAgIDxSZW5kZXJDdXN0b21Db21wb25lbnRcbiAgICAgIEN1c3RvbUNvbXBvbmVudD17Q3VzdG9tQ29tcG9uZW50fVxuICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdFNhdmVEcmFmdEJ1dHRvbn1cbiAgICAgIGNvbXBvbmVudFByb3BzPXt7XG4gICAgICAgIERlZmF1bHRCdXR0b246IERlZmF1bHRTYXZlRHJhZnRCdXR0b24sXG4gICAgICAgIGRpc2FibGVkOiAhY2FuU2F2ZURyYWZ0LFxuICAgICAgICBsYWJlbDogdCgnc2F2ZURyYWZ0JyksXG4gICAgICAgIHNhdmVEcmFmdCxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlNhdmVEcmFmdCIsImJhc2VDbGFzcyIsIkRlZmF1bHRTYXZlRHJhZnRCdXR0b24iLCJkaXNhYmxlZCIsImxhYmVsIiwic2F2ZURyYWZ0IiwicmVmIiwidXNlUmVmIiwiZWRpdERlcHRoIiwidXNlRWRpdERlcHRoIiwidXNlSG90a2V5IiwiY21kQ3RybEtleSIsImtleUNvZGVzIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY3VycmVudCIsImNsaWNrIiwiRm9ybVN1Ym1pdCIsImJ1dHRvbklkIiwiYnV0dG9uU3R5bGUiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwic2l6ZSIsInR5cGUiLCJDdXN0b21Db21wb25lbnQiLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJzdWJtaXQiLCJ1c2VGb3JtIiwiaWQiLCJjb2xsZWN0aW9uIiwiZ2xvYmFsIiwidXNlRG9jdW1lbnRJbmZvIiwibW9kaWZpZWQiLCJ1c2VGb3JtTW9kaWZpZWQiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwidCIsInVzZVRyYW5zbGF0aW9uIiwiY2FuU2F2ZURyYWZ0IiwidXNlQ2FsbGJhY2siLCJzZWFyY2giLCJhY3Rpb24iLCJtZXRob2QiLCJzbHVnIiwib3ZlcnJpZGVzIiwiX3N0YXR1cyIsInNraXBWYWxpZGF0aW9uIiwiUmVuZGVyQ3VzdG9tQ29tcG9uZW50IiwiRGVmYXVsdENvbXBvbmVudCIsImNvbXBvbmVudFByb3BzIiwiRGVmYXVsdEJ1dHRvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkErRGFBOzs7ZUFBQUE7OzsrREEvRDhCOzhCQUNaO2tFQUVUO3lCQUNtQjsrREFDbEI7d0JBQ0c7OEJBQ007MkJBQ0g7d0JBQ0g7OEVBQ1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxDLE1BQU1DLFlBQVk7QUFZbEIsTUFBTUMseUJBQWdFLENBQUMsRUFDckVDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxTQUFTLEVBQ1Y7SUFDQyxNQUFNQyxNQUFNQyxJQUFBQSxhQUFNLEVBQW9CO0lBQ3RDLE1BQU1DLFlBQVlDLElBQUFBLHVCQUFZO0lBRTlCQyxJQUFBQSxrQkFBUyxFQUFDO1FBQUVDLFlBQVk7UUFBTUg7UUFBV0ksVUFBVTtZQUFDO1NBQUk7SUFBQyxHQUFHLENBQUNDO1FBQzNELElBQUlWLFVBQVU7WUFDWjtRQUNGO1FBRUFVLEVBQUVDLGNBQWM7UUFDaEJELEVBQUVFLGVBQWU7UUFDakIsSUFBSVQsS0FBS1UsU0FBUztZQUNoQlYsSUFBSVUsT0FBTyxDQUFDQyxLQUFLO1FBQ25CO0lBQ0Y7SUFFQSxxQkFDRSw2QkFBQ0MsZUFBVTtRQUNUQyxVQUFTO1FBQ1RDLGFBQVk7UUFDWkMsV0FBV3BCO1FBQ1hFLFVBQVVBO1FBQ1ZtQixTQUFTakI7UUFDVEMsS0FBS0E7UUFDTGlCLE1BQUs7UUFDTEMsTUFBSztPQUVKcEI7QUFHUDtBQUtPLE1BQU1KLFlBQTZCLENBQUMsRUFBRXlCLGVBQWUsRUFBRTtJQUM1RCxNQUFNLEVBQ0pDLFFBQVEsRUFBRUMsR0FBRyxFQUFFLEVBQ2ZDLFNBQVMsRUFDVixHQUFHQyxJQUFBQSxpQkFBUztJQUNiLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdDLElBQUFBLGdCQUFPO0lBQzFCLE1BQU0sRUFBRUMsRUFBRSxFQUFFQyxVQUFVLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxJQUFBQSw2QkFBZTtJQUNsRCxNQUFNQyxXQUFXQyxJQUFBQSx3QkFBZTtJQUNoQyxNQUFNLEVBQUVDLE1BQU1DLE1BQU0sRUFBRSxHQUFHQyxJQUFBQSxpQkFBUztJQUNsQyxNQUFNLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSw0QkFBYyxFQUFDO0lBRTdCLE1BQU1DLGVBQWVQO0lBRXJCLE1BQU0vQixZQUFZdUMsSUFBQUEsa0JBQVcsRUFBQztRQUM1QixNQUFNQyxTQUFTLENBQUMsUUFBUSxFQUFFTixPQUFPLHdDQUF3QyxDQUFDO1FBQzFFLElBQUlPO1FBQ0osSUFBSUMsU0FBUztRQUViLElBQUlkLFlBQVk7WUFDZGEsU0FBUyxDQUFDLEVBQUVsQixVQUFVLEVBQUVELElBQUksQ0FBQyxFQUFFTSxXQUFXZSxJQUFJLENBQUMsRUFBRWhCLEtBQUssQ0FBQyxDQUFDLEVBQUVBLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRWEsT0FBTyxDQUFDO1lBQzlFLElBQUliLElBQUllLFNBQVM7UUFDbkI7UUFFQSxJQUFJYixRQUFRO1lBQ1ZZLFNBQVMsQ0FBQyxFQUFFbEIsVUFBVSxFQUFFRCxJQUFJLFNBQVMsRUFBRU8sT0FBT2MsSUFBSSxDQUFDLEVBQUVILE9BQU8sQ0FBQztRQUMvRDtRQUVBLE1BQU1mLE9BQU87WUFDWGdCO1lBQ0FDO1lBQ0FFLFdBQVc7Z0JBQ1RDLFNBQVM7WUFDWDtZQUNBQyxnQkFBZ0I7UUFDbEI7SUFDRixHQUFHO1FBQUNyQjtRQUFRRztRQUFZQztRQUFRTjtRQUFXRDtRQUFLWTtRQUFRUDtLQUFHO0lBRTNELHFCQUNFLDZCQUFDb0IsOEJBQXFCO1FBQ3BCM0IsaUJBQWlCQTtRQUNqQjRCLGtCQUFrQm5EO1FBQ2xCb0QsZ0JBQWdCO1lBQ2RDLGVBQWVyRDtZQUNmQyxVQUFVLENBQUN3QztZQUNYdkMsT0FBT3FDLEVBQUU7WUFDVHBDO1FBQ0Y7O0FBR04ifQ==