From bccebf846c162d41fcf90869fa84d1684992e1a5 Mon Sep 17 00:00:00 2001 From: Miguel Fonseca Date: Mon, 10 Feb 2020 17:58:31 +0000 Subject: [PATCH] API: Stabilize localAutosave() --- .../developers/data/data-core-editor.md | 5 ++++ .../specs/editor/various/autosave.test.js | 24 +++++-------------- .../local-autosave-monitor/index.js | 4 ++-- packages/editor/src/store/actions.js | 6 ++++- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/docs/designers-developers/developers/data/data-core-editor.md b/docs/designers-developers/developers/data/data-core-editor.md index ffba8e67b9aa3..356688f661871 100644 --- a/docs/designers-developers/developers/data/data-core-editor.md +++ b/docs/designers-developers/developers/data/data-core-editor.md @@ -1153,6 +1153,11 @@ _Related_ - insertDefaultBlock in core/block-editor store. +# **localAutosave** + +Action generator used in signalling that the post should be locally +autosaved (e.g. on the Web, it might be committed to Session Storage). + # **lockPostAutosaving** Returns an action object used to signal that post autosaving is locked. diff --git a/packages/e2e-tests/specs/editor/various/autosave.test.js b/packages/e2e-tests/specs/editor/various/autosave.test.js index 34822f8c680aa..51382e6e41a2d 100644 --- a/packages/e2e-tests/specs/editor/various/autosave.test.js +++ b/packages/e2e-tests/specs/editor/various/autosave.test.js @@ -103,9 +103,7 @@ describe( 'autosave', () => { // Trigger local autosave await page.evaluate( () => - window.wp.data - .dispatch( 'core/editor' ) - .__experimentalLocalAutosave() + window.wp.data.dispatch( 'core/editor' ).localAutosave() ); // Reload without saving on the server await page.reload(); @@ -207,9 +205,7 @@ describe( 'autosave', () => { // Trigger local autosave await page.evaluate( () => - window.wp.data - .dispatch( 'core/editor' ) - .__experimentalLocalAutosave() + window.wp.data.dispatch( 'core/editor' ).localAutosave() ); expect( await page.evaluate( () => window.sessionStorage.length ) @@ -233,9 +229,7 @@ describe( 'autosave', () => { // Trigger local autosave await page.evaluate( () => - window.wp.data - .dispatch( 'core/editor' ) - .__experimentalLocalAutosave() + window.wp.data.dispatch( 'core/editor' ).localAutosave() ); expect( await page.evaluate( () => window.sessionStorage.length ) @@ -260,9 +254,7 @@ describe( 'autosave', () => { // Trigger local autosave await page.evaluate( () => - window.wp.data - .dispatch( 'core/editor' ) - .__experimentalLocalAutosave() + window.wp.data.dispatch( 'core/editor' ).localAutosave() ); expect( await page.evaluate( () => window.sessionStorage.length ) @@ -283,9 +275,7 @@ describe( 'autosave', () => { // Trigger local autosave await page.evaluate( () => - window.wp.data - .dispatch( 'core/editor' ) - .__experimentalLocalAutosave() + window.wp.data.dispatch( 'core/editor' ).localAutosave() ); expect( await page.evaluate( () => window.sessionStorage.length ) @@ -314,9 +304,7 @@ describe( 'autosave', () => { // Force conflicting local autosave await page.evaluate( () => - window.wp.data - .dispatch( 'core/editor' ) - .__experimentalLocalAutosave() + window.wp.data.dispatch( 'core/editor' ).localAutosave() ); expect( await page.evaluate( () => window.sessionStorage.length ) diff --git a/packages/editor/src/components/local-autosave-monitor/index.js b/packages/editor/src/components/local-autosave-monitor/index.js index e79fe0642b3af..07ba23d7a8502 100644 --- a/packages/editor/src/components/local-autosave-monitor/index.js +++ b/packages/editor/src/components/local-autosave-monitor/index.js @@ -169,9 +169,9 @@ function useAutosavePurge() { } function LocalAutosaveMonitor() { - const { __experimentalLocalAutosave } = useDispatch( 'core/editor' ); + const { localAutosave } = useDispatch( 'core/editor' ); const autosave = useCallback( () => { - requestIdleCallback( __experimentalLocalAutosave ); + requestIdleCallback( localAutosave ); }, [] ); useAutosaveNotice(); useAutosavePurge(); diff --git a/packages/editor/src/store/actions.js b/packages/editor/src/store/actions.js index d58fbef47254a..bcb4b121b4d98 100644 --- a/packages/editor/src/store/actions.js +++ b/packages/editor/src/store/actions.js @@ -350,7 +350,11 @@ export function* autosave( options ) { yield dispatch( STORE_KEY, 'savePost', { isAutosave: true, ...options } ); } -export function* __experimentalLocalAutosave() { +/** + * Action generator used in signalling that the post should be locally + * autosaved (e.g. on the Web, it might be committed to Session Storage). + */ +export function* localAutosave() { const post = yield select( STORE_KEY, 'getCurrentPost' ); const isPostNew = yield select( STORE_KEY, 'isEditedPostNew' ); const title = yield select( STORE_KEY, 'getEditedPostAttribute', 'title' );