Skip to content

Commit 4c178b8

Browse files
authored
Deprecate '@wordpress/nux' package (WordPress#18981)
1 parent 8b1f05b commit 4c178b8

File tree

15 files changed

+52
-51
lines changed

15 files changed

+52
-51
lines changed

lib/client-assets.php

-22
Original file line numberDiff line numberDiff line change
@@ -434,8 +434,6 @@ function gutenberg_register_packages_styles( &$styles ) {
434434
* @since 0.1.0
435435
*/
436436
function gutenberg_enqueue_block_editor_assets() {
437-
global $wp_scripts;
438-
439437
wp_add_inline_script(
440438
'wp-api-fetch',
441439
sprintf(
@@ -449,26 +447,6 @@ function gutenberg_enqueue_block_editor_assets() {
449447
'after'
450448
);
451449

452-
// TEMPORARY: Core does not (yet) provide persistence migration from the
453-
// introduction of the block editor and still calls the data plugins.
454-
// We unset the existing inline scripts first.
455-
$wp_scripts->registered['wp-data']->extra['after'] = array();
456-
wp_add_inline_script(
457-
'wp-data',
458-
implode(
459-
"\n",
460-
array(
461-
'( function() {',
462-
' var userId = ' . get_current_user_ID() . ';',
463-
' var storageKey = "WP_DATA_USER_" + userId;',
464-
' wp.data',
465-
' .use( wp.data.plugins.persistence, { storageKey: storageKey } );',
466-
' wp.data.plugins.persistence.__unstableMigrate( { storageKey: storageKey } );',
467-
'} )();',
468-
)
469-
)
470-
);
471-
472450
if ( defined( 'GUTENBERG_LIVE_RELOAD' ) && GUTENBERG_LIVE_RELOAD ) {
473451
$live_reload_url = ( GUTENBERG_LIVE_RELOAD === true ) ? 'http://localhost:35729/livereload.js' : GUTENBERG_LIVE_RELOAD;
474452

package-lock.json

+1-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/data/src/plugins/persistence/index.js

+22-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* External dependencies
33
*/
4-
import { merge, isPlainObject, get } from 'lodash';
4+
import { merge, isPlainObject, get, has } from 'lodash';
55

66
/**
77
* Internal dependencies
@@ -208,26 +208,40 @@ const persistencePlugin = function( registry, pluginOptions ) {
208208
};
209209

210210
/**
211-
* Deprecated: Remove this function once WordPress 5.3 is released.
211+
* Deprecated: Remove this function and the code in WordPress Core that calls
212+
* it once WordPress 5.4 is released.
212213
*/
213214

214215
persistencePlugin.__unstableMigrate = ( pluginOptions ) => {
215216
const persistence = createPersistenceInterface( pluginOptions );
216217

217-
// Preferences migration to introduce the block editor module
218-
const insertUsage = get( persistence.get(), [
219-
'core/editor',
220-
'preferences',
221-
'insertUsage',
222-
] );
218+
const state = persistence.get();
223219

220+
// Migrate 'insertUsage' from 'core/editor' to 'core/block-editor'
221+
const insertUsage = get( state, [ 'core/editor', 'preferences', 'insertUsage' ] );
224222
if ( insertUsage ) {
225223
persistence.set( 'core/block-editor', {
226224
preferences: {
227225
insertUsage,
228226
},
229227
} );
230228
}
229+
230+
// Migrate 'areTipsEnabled' from 'core/nux' to 'showWelcomeGuide' in 'core/edit-post'
231+
const areTipsEnabled = get( state, [ 'core/nux', 'preferences', 'areTipsEnabled' ] );
232+
const hasWelcomeGuide = has( state, [ 'core/edit-post', 'preferences', 'features', 'welcomeGuide' ] );
233+
if ( areTipsEnabled !== undefined && ! hasWelcomeGuide ) {
234+
persistence.set(
235+
'core/edit-post',
236+
merge( state[ 'core/edit-post' ], {
237+
preferences: {
238+
features: {
239+
welcomeGuide: areTipsEnabled,
240+
},
241+
},
242+
} )
243+
);
244+
}
231245
};
232246

233247
export default persistencePlugin;

packages/e2e-test-utils/src/create-new-post.js

+6-7
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export async function createNewPost( {
1818
title,
1919
content,
2020
excerpt,
21-
enableTips = false,
21+
showWelcomeGuide = false,
2222
} = {} ) {
2323
const query = addQueryArgs( '', {
2424
post_type: postType,
@@ -29,13 +29,12 @@ export async function createNewPost( {
2929

3030
await visitAdminPage( 'post-new.php', query );
3131

32-
const areTipsEnabled = await page.evaluate( () => wp.data.select( 'core/nux' ).areTipsEnabled() );
32+
const isWelcomeGuideActive = await page.evaluate( () =>
33+
wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ) );
3334

34-
if ( enableTips !== areTipsEnabled ) {
35-
await page.evaluate( ( _enableTips ) => {
36-
const action = _enableTips ? 'enableTips' : 'disableTips';
37-
wp.data.dispatch( 'core/nux' )[ action ]();
38-
}, enableTips );
35+
if ( showWelcomeGuide !== isWelcomeGuideActive ) {
36+
await page.evaluate( () =>
37+
wp.data.dispatch( 'core/edit-post' ).toggleFeature( 'welcomeGuide' ) );
3938

4039
await page.reload();
4140
}

packages/e2e-tests/specs/editor/various/nux.test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe( 'New User Experience (NUX)', () => {
88
let welcomeGuideText, welcomeGuide;
99

1010
// Create a new post as a first-time user
11-
await createNewPost( { enableTips: true } );
11+
await createNewPost( { showWelcomeGuide: true } );
1212

1313
// Guide should be on page 1 of 3
1414
welcomeGuideText = await page.$eval( '.edit-post-welcome-guide', ( element ) => element.innerText );
@@ -68,7 +68,7 @@ describe( 'New User Experience (NUX)', () => {
6868
let welcomeGuide;
6969

7070
// Create a new post as a first-time user
71-
await createNewPost( { enableTips: true } );
71+
await createNewPost( { showWelcomeGuide: true } );
7272

7373
// Guide should be open
7474
welcomeGuide = await page.$( '.edit-post-welcome-guide' );

packages/edit-post/package.json

-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
"@wordpress/keycodes": "file:../keycodes",
3939
"@wordpress/media-utils": "file:../media-utils",
4040
"@wordpress/notices": "file:../notices",
41-
"@wordpress/nux": "file:../nux",
4241
"@wordpress/plugins": "file:../plugins",
4342
"@wordpress/url": "file:../url",
4443
"@wordpress/viewport": "file:../viewport",

packages/edit-post/src/components/welcome-guide/index.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ import { __experimentalCreateInterpolateElement } from '@wordpress/element';
1212
import { CanvasImage, EditorImage, BlockLibraryImage, InserterIconImage } from './images';
1313

1414
export default function WelcomeGuide() {
15-
const areTipsEnabled = useSelect( ( select ) => select( 'core/nux' ).areTipsEnabled(), [] );
15+
const isActive = useSelect( ( select ) => select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ), [] );
1616

17-
const { disableTips } = useDispatch( 'core/nux' );
17+
const { toggleFeature } = useDispatch( 'core/edit-post' );
1818

19-
if ( ! areTipsEnabled ) {
19+
if ( ! isActive ) {
2020
return null;
2121
}
2222

2323
return (
2424
<Guide
2525
className="edit-post-welcome-guide"
2626
finishButtonText={ __( 'Get started' ) }
27-
onFinish={ disableTips }
27+
onFinish={ () => toggleFeature( 'welcomeGuide' ) }
2828
>
2929

3030
<GuidePage className="edit-post-welcome-guide__page">

packages/edit-post/src/index.js

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import '@wordpress/core-data';
55
import '@wordpress/block-editor';
66
import '@wordpress/editor';
7-
import '@wordpress/nux';
87
import '@wordpress/viewport';
98
import '@wordpress/notices';
109
import { registerCoreBlocks, __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';

packages/edit-post/src/plugins/welcome-guide-menu-item/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { MenuItem } from '@wordpress/components';
66
import { __ } from '@wordpress/i18n';
77

88
export default function WelcomeGuideMenuItem() {
9-
const { enableTips } = useDispatch( 'core/nux' );
9+
const { toggleFeature } = useDispatch( 'core/edit-post' );
1010

1111
return (
12-
<MenuItem onClick={ enableTips }>
12+
<MenuItem onClick={ () => toggleFeature( 'welcomeGuide' ) }>
1313
{ __( 'Welcome Guide' ) }
1414
</MenuItem>
1515
);

packages/edit-post/src/store/defaults.js

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export const PREFERENCES_DEFAULTS = {
99
features: {
1010
fixedToolbar: false,
1111
showInserterHelpPanel: true,
12+
welcomeGuide: true,
1213
},
1314
pinnedPluginItems: {},
1415
hiddenBlockTypes: [],

packages/editor/package.json

-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
"@wordpress/keycodes": "file:../keycodes",
4444
"@wordpress/media-utils": "file:../media-utils",
4545
"@wordpress/notices": "file:../notices",
46-
"@wordpress/nux": "file:../nux",
4746
"@wordpress/rich-text": "file:../rich-text",
4847
"@wordpress/server-side-render": "file:../server-side-render",
4948
"@wordpress/url": "file:../url",

packages/editor/src/index.js

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import '@wordpress/block-editor';
55
import '@wordpress/blocks';
66
import '@wordpress/core-data';
77
import '@wordpress/notices';
8-
import '@wordpress/nux';
98
import '@wordpress/rich-text';
109
import '@wordpress/viewport';
1110

packages/nux/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 3.1.0 (Unreleased)
2+
3+
- The `@wordpress/nux` package has been deprecated. Please use the `Guide` component in `@wordpress/components` to show a user guide.
4+
15
## 3.0.6 (2019-01-03)
26

37
## 3.0.5 (2018-12-12)

packages/nux/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"@wordpress/components": "file:../components",
2626
"@wordpress/compose": "file:../compose",
2727
"@wordpress/data": "file:../data",
28+
"@wordpress/deprecated": "file:../deprecated",
2829
"@wordpress/element": "file:../element",
2930
"@wordpress/i18n": "file:../i18n",
3031
"lodash": "^4.17.15",

packages/nux/src/index.js

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1+
/**
2+
* WordPress dependencies
3+
*/
4+
import deprecated from '@wordpress/deprecated';
5+
16
/**
27
* Internal dependencies
38
*/
49
import './store';
510

611
export { default as DotTip } from './components/dot-tip';
12+
13+
deprecated( 'wp.nux', {
14+
hint: 'wp.components.Guide can be used to show a user guide.',
15+
} );

0 commit comments

Comments
 (0)