@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
58 lines (51 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.localAutosaveGet = localAutosaveGet;
exports.localAutosaveSet = localAutosaveSet;
exports.localAutosaveClear = localAutosaveClear;
exports.default = void 0;
/**
* Function returning a sessionStorage key to set or retrieve a given post's
* automatic session backup.
*
* Keys are crucially prefixed with 'wp-autosave-' so that wp-login.php's
* `loggedout` handler can clear sessionStorage of any user-private content.
*
* @see https://github.com/WordPress/wordpress-develop/blob/6dad32d2aed47e6c0cf2aee8410645f6d7aba6bd/src/wp-login.php#L103
*
* @param {string} postId Post ID.
* @param {boolean} isPostNew Whether post new.
* @return {string} sessionStorage key
*/
function postKey(postId, isPostNew) {
return `wp-autosave-block-editor-post-${isPostNew ? 'auto-draft' : postId}`;
}
function localAutosaveGet(postId, isPostNew) {
return window.sessionStorage.getItem(postKey(postId, isPostNew));
}
function localAutosaveSet(postId, isPostNew, title, content, excerpt) {
window.sessionStorage.setItem(postKey(postId, isPostNew), JSON.stringify({
post_title: title,
content,
excerpt
}));
}
function localAutosaveClear(postId, isPostNew) {
window.sessionStorage.removeItem(postKey(postId, isPostNew));
}
const controls = {
LOCAL_AUTOSAVE_SET({
postId,
isPostNew,
title,
content,
excerpt
}) {
localAutosaveSet(postId, isPostNew, title, content, excerpt);
}
};
var _default = controls;
exports.default = _default;
//# sourceMappingURL=controls.js.map