payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
146 lines (145 loc) • 12.2 kB
JavaScript
;
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==