UNPKG

@wordpress/editor

Version:
44 lines (43 loc) 1.38 kB
// packages/editor/src/store/local-autosave.js import { privateApis as coreDataPrivateApis } from "@wordpress/core-data"; import { unlock } from "../lock-unlock.mjs"; var { CRDT_AUTOSAVE_SNAPSHOT_KEY } = unlock(coreDataPrivateApis); 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, crdtSnapshot) { const backup = { post_title: title, content, excerpt }; if (crdtSnapshot) { backup[CRDT_AUTOSAVE_SNAPSHOT_KEY] = crdtSnapshot; } const key = postKey(postId, isPostNew); try { window.sessionStorage.setItem(key, JSON.stringify(backup)); } catch (error) { if (!backup[CRDT_AUTOSAVE_SNAPSHOT_KEY]) { throw error; } delete backup[CRDT_AUTOSAVE_SNAPSHOT_KEY]; window.sessionStorage.setItem(key, JSON.stringify(backup)); } } function localAutosaveGetSnapshot(backup) { return backup?.[CRDT_AUTOSAVE_SNAPSHOT_KEY]; } function localAutosaveClear(postId, isPostNew) { window.sessionStorage.removeItem(postKey(postId, isPostNew)); } export { localAutosaveClear, localAutosaveGet, localAutosaveGetSnapshot, localAutosaveSet }; //# sourceMappingURL=local-autosave.mjs.map