@wordpress/edit-site 4.0.2 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/app/index.js +20 -0
- package/build/components/app/index.js.map +1 -1
- package/build/components/editor/global-styles-renderer.js +7 -3
- package/build/components/editor/global-styles-renderer.js.map +1 -1
- package/build/components/editor/index.js +3 -18
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +31 -1
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/utils.js +2 -2
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/header/index.js +1 -1
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/more-menu/index.js +9 -21
- package/build/components/header/more-menu/index.js.map +1 -1
- package/build/components/header/more-menu/site-export.js +1 -1
- package/build/components/header/more-menu/site-export.js.map +1 -1
- package/build/components/header/more-menu/welcome-guide-menu-item.js +4 -8
- package/build/components/header/more-menu/welcome-guide-menu-item.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/list/table.js +6 -19
- package/build/components/list/table.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-panel/index.js +9 -3
- package/build/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
- package/build/components/sidebar/global-styles-sidebar.js +5 -5
- package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build/components/welcome-guide/editor.js +6 -6
- package/build/components/welcome-guide/editor.js.map +1 -1
- package/build/components/welcome-guide/styles.js +6 -4
- package/build/components/welcome-guide/styles.js.map +1 -1
- package/build/index.js +12 -11
- package/build/index.js.map +1 -1
- package/build/store/actions.js +38 -34
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +3 -6
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +0 -44
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +31 -9
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/app/index.js +16 -0
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/editor/global-styles-renderer.js +6 -3
- package/build-module/components/editor/global-styles-renderer.js.map +1 -1
- package/build-module/components/editor/index.js +4 -17
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +31 -2
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/utils.js +2 -2
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/header/index.js +1 -1
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/more-menu/index.js +11 -22
- package/build-module/components/header/more-menu/index.js.map +1 -1
- package/build-module/components/header/more-menu/site-export.js +1 -1
- package/build-module/components/header/more-menu/site-export.js.map +1 -1
- package/build-module/components/header/more-menu/welcome-guide-menu-item.js +4 -8
- package/build-module/components/header/more-menu/welcome-guide-menu-item.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/list/table.js +7 -20
- package/build-module/components/list/table.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-panel/index.js +9 -3
- package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
- package/build-module/components/sidebar/global-styles-sidebar.js +4 -4
- package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build-module/components/welcome-guide/editor.js +5 -5
- package/build-module/components/welcome-guide/editor.js.map +1 -1
- package/build-module/components/welcome-guide/styles.js +5 -4
- package/build-module/components/welcome-guide/styles.js.map +1 -1
- package/build-module/index.js +11 -10
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +36 -34
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +4 -7
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/reducer.js +0 -40
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +26 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +91 -29
- package/build-style/style.css +91 -29
- package/package.json +33 -27
- package/src/components/app/index.js +19 -0
- package/src/components/editor/global-styles-renderer.js +7 -1
- package/src/components/editor/index.js +2 -20
- package/src/components/global-styles/screen-block-list.js +27 -2
- package/src/components/global-styles/screen-typography.js +1 -2
- package/src/components/global-styles/utils.js +2 -2
- package/src/components/header/index.js +1 -1
- package/src/components/header/more-menu/index.js +12 -29
- package/src/components/header/more-menu/site-export.js +1 -1
- package/src/components/header/more-menu/welcome-guide-menu-item.js +3 -7
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/list/table.js +13 -21
- package/src/components/navigation-sidebar/navigation-panel/index.js +16 -11
- package/src/components/navigation-sidebar/navigation-toggle/test/index.js +1 -1
- package/src/components/sidebar/global-styles-sidebar.js +6 -3
- package/src/components/sidebar/style.scss +1 -1
- package/src/components/welcome-guide/editor.js +8 -4
- package/src/components/welcome-guide/styles.js +5 -3
- package/src/index.js +12 -10
- package/src/store/actions.js +22 -13
- package/src/store/index.js +2 -6
- package/src/store/reducer.js +0 -30
- package/src/store/selectors.js +34 -10
- package/src/store/test/actions.js +17 -0
- package/src/store/test/reducer.js +0 -22
- package/src/store/test/selectors.js +14 -52
- package/src/style.scss +0 -1
- package/build/components/header/feature-toggle/index.js +0 -66
- package/build/components/header/feature-toggle/index.js.map +0 -1
- package/build/components/routes/redirect-to-homepage.js +0 -106
- package/build/components/routes/redirect-to-homepage.js.map +0 -1
- package/build/store/defaults.js +0 -15
- package/build/store/defaults.js.map +0 -1
- package/build-module/components/header/feature-toggle/index.js +0 -52
- package/build-module/components/header/feature-toggle/index.js.map +0 -1
- package/build-module/components/routes/redirect-to-homepage.js +0 -94
- package/build-module/components/routes/redirect-to-homepage.js.map +0 -1
- package/build-module/store/defaults.js +0 -8
- package/build-module/store/defaults.js.map +0 -1
- package/src/components/header/feature-toggle/index.js +0 -55
- package/src/components/header/more-menu/style.scss +0 -29
- package/src/components/routes/redirect-to-homepage.js +0 -94
- package/src/store/defaults.js +0 -7
package/src/store/selectors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { map, keyBy } from 'lodash';
|
|
5
5
|
import createSelector from 'rememo';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -9,9 +9,11 @@ import createSelector from 'rememo';
|
|
|
9
9
|
*/
|
|
10
10
|
import { store as coreDataStore } from '@wordpress/core-data';
|
|
11
11
|
import { createRegistrySelector } from '@wordpress/data';
|
|
12
|
+
import deprecated from '@wordpress/deprecated';
|
|
12
13
|
import { uploadMedia } from '@wordpress/media-utils';
|
|
13
14
|
import { isTemplatePart } from '@wordpress/blocks';
|
|
14
15
|
import { Platform } from '@wordpress/element';
|
|
16
|
+
import { store as preferencesStore } from '@wordpress/preferences';
|
|
15
17
|
|
|
16
18
|
/**
|
|
17
19
|
* Internal dependencies
|
|
@@ -31,16 +33,35 @@ import {
|
|
|
31
33
|
* @typedef {'template'|'template_type'} TemplateType Template type.
|
|
32
34
|
*/
|
|
33
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Helper for getting a preference from the preferences store.
|
|
38
|
+
*
|
|
39
|
+
* This is only present so that `getSettings` doesn't need to be made a
|
|
40
|
+
* registry selector.
|
|
41
|
+
*
|
|
42
|
+
* It's unstable because the selector needs to be exported and so part of the
|
|
43
|
+
* public API to work.
|
|
44
|
+
*/
|
|
45
|
+
export const __unstableGetPreference = createRegistrySelector(
|
|
46
|
+
( select ) => ( state, name ) =>
|
|
47
|
+
select( preferencesStore ).get( 'core/edit-site', name )
|
|
48
|
+
);
|
|
49
|
+
|
|
34
50
|
/**
|
|
35
51
|
* Returns whether the given feature is enabled or not.
|
|
36
52
|
*
|
|
37
|
-
* @param {Object} state
|
|
38
|
-
* @param {string}
|
|
53
|
+
* @param {Object} state Global application state.
|
|
54
|
+
* @param {string} featureName Feature slug.
|
|
39
55
|
*
|
|
40
56
|
* @return {boolean} Is active.
|
|
41
57
|
*/
|
|
42
|
-
export function isFeatureActive( state,
|
|
43
|
-
|
|
58
|
+
export function isFeatureActive( state, featureName ) {
|
|
59
|
+
deprecated( `select( 'core/interface' ).isFeatureActive`, {
|
|
60
|
+
since: '6.0',
|
|
61
|
+
alternative: `select( 'core/preferences' ).get`,
|
|
62
|
+
} );
|
|
63
|
+
|
|
64
|
+
return !! __unstableGetPreference( state, featureName );
|
|
44
65
|
}
|
|
45
66
|
|
|
46
67
|
/**
|
|
@@ -94,8 +115,11 @@ export const getSettings = createSelector(
|
|
|
94
115
|
const settings = {
|
|
95
116
|
...state.settings,
|
|
96
117
|
outlineMode: true,
|
|
97
|
-
focusMode:
|
|
98
|
-
hasFixedToolbar:
|
|
118
|
+
focusMode: !! __unstableGetPreference( state, 'focusMode' ),
|
|
119
|
+
hasFixedToolbar: !! __unstableGetPreference(
|
|
120
|
+
state,
|
|
121
|
+
'fixedToolbar'
|
|
122
|
+
),
|
|
99
123
|
__experimentalSetIsInserterOpened: setIsInserterOpen,
|
|
100
124
|
__experimentalReusableBlocks: getReusableBlocks( state ),
|
|
101
125
|
__experimentalPreferPatternsOnRoot:
|
|
@@ -119,8 +143,8 @@ export const getSettings = createSelector(
|
|
|
119
143
|
( state ) => [
|
|
120
144
|
getCanUserCreateMedia( state ),
|
|
121
145
|
state.settings,
|
|
122
|
-
|
|
123
|
-
|
|
146
|
+
__unstableGetPreference( state, 'focusMode' ),
|
|
147
|
+
__unstableGetPreference( state, 'fixedToolbar' ),
|
|
124
148
|
getReusableBlocks( state ),
|
|
125
149
|
getEditedPostType( state ),
|
|
126
150
|
]
|
|
@@ -339,5 +363,5 @@ export const getCurrentTemplateTemplateParts = createRegistrySelector(
|
|
|
339
363
|
* @return {string} Editing mode.
|
|
340
364
|
*/
|
|
341
365
|
export function getEditorMode( state ) {
|
|
342
|
-
return state
|
|
366
|
+
return __unstableGetPreference( state, 'editorMode' );
|
|
343
367
|
}
|
|
@@ -7,6 +7,7 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
7
7
|
import { createRegistry } from '@wordpress/data';
|
|
8
8
|
import { store as interfaceStore } from '@wordpress/interface';
|
|
9
9
|
import { store as noticesStore } from '@wordpress/notices';
|
|
10
|
+
import { store as preferencesStore } from '@wordpress/preferences';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Internal dependencies
|
|
@@ -37,6 +38,7 @@ function createRegistryWithStores() {
|
|
|
37
38
|
registry.register( editSiteStore );
|
|
38
39
|
registry.register( interfaceStore );
|
|
39
40
|
registry.register( noticesStore );
|
|
41
|
+
registry.register( preferencesStore );
|
|
40
42
|
|
|
41
43
|
return registry;
|
|
42
44
|
}
|
|
@@ -46,10 +48,25 @@ describe( 'actions', () => {
|
|
|
46
48
|
it( 'should toggle a feature flag', () => {
|
|
47
49
|
const registry = createRegistryWithStores();
|
|
48
50
|
|
|
51
|
+
// Should default to false.
|
|
52
|
+
expect(
|
|
53
|
+
registry.select( editSiteStore ).isFeatureActive( 'name' )
|
|
54
|
+
).toBe( false );
|
|
55
|
+
|
|
56
|
+
// Toggle on.
|
|
49
57
|
registry.dispatch( editSiteStore ).toggleFeature( 'name' );
|
|
50
58
|
expect(
|
|
51
59
|
registry.select( editSiteStore ).isFeatureActive( 'name' )
|
|
52
60
|
).toBe( true );
|
|
61
|
+
|
|
62
|
+
// Toggle off again.
|
|
63
|
+
registry.dispatch( editSiteStore ).toggleFeature( 'name' );
|
|
64
|
+
expect(
|
|
65
|
+
registry.select( editSiteStore ).isFeatureActive( 'name' )
|
|
66
|
+
).toBe( false );
|
|
67
|
+
|
|
68
|
+
// Expect a deprecation warning.
|
|
69
|
+
expect( console ).toHaveWarned();
|
|
53
70
|
} );
|
|
54
71
|
} );
|
|
55
72
|
|
|
@@ -7,7 +7,6 @@ import deepFreeze from 'deep-freeze';
|
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
9
|
import {
|
|
10
|
-
preferences,
|
|
11
10
|
settings,
|
|
12
11
|
homeTemplateId,
|
|
13
12
|
editedPost,
|
|
@@ -15,7 +14,6 @@ import {
|
|
|
15
14
|
blockInserterPanel,
|
|
16
15
|
listViewPanel,
|
|
17
16
|
} from '../reducer';
|
|
18
|
-
import { PREFERENCES_DEFAULTS } from '../defaults';
|
|
19
17
|
|
|
20
18
|
import {
|
|
21
19
|
setNavigationPanelActiveMenu,
|
|
@@ -26,26 +24,6 @@ import {
|
|
|
26
24
|
} from '../actions';
|
|
27
25
|
|
|
28
26
|
describe( 'state', () => {
|
|
29
|
-
describe( 'preferences()', () => {
|
|
30
|
-
it( 'should apply all defaults', () => {
|
|
31
|
-
const state = preferences( undefined, {} );
|
|
32
|
-
|
|
33
|
-
expect( state ).toEqual( PREFERENCES_DEFAULTS );
|
|
34
|
-
} );
|
|
35
|
-
|
|
36
|
-
it( 'should toggle a feature flag', () => {
|
|
37
|
-
const state = preferences(
|
|
38
|
-
deepFreeze( { features: { chicken: true } } ),
|
|
39
|
-
{
|
|
40
|
-
type: 'TOGGLE_FEATURE',
|
|
41
|
-
feature: 'chicken',
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
expect( state.features ).toEqual( { chicken: false } );
|
|
46
|
-
} );
|
|
47
|
-
} );
|
|
48
|
-
|
|
49
27
|
describe( 'settings()', () => {
|
|
50
28
|
it( 'should apply default state', () => {
|
|
51
29
|
expect( settings( undefined, {} ) ).toEqual( {} );
|
|
@@ -7,7 +7,6 @@ import { store as coreDataStore } from '@wordpress/core-data';
|
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
9
|
import {
|
|
10
|
-
isFeatureActive,
|
|
11
10
|
getCanUserCreateMedia,
|
|
12
11
|
getSettings,
|
|
13
12
|
getHomeTemplateId,
|
|
@@ -19,62 +18,22 @@ import {
|
|
|
19
18
|
isNavigationOpened,
|
|
20
19
|
isInserterOpened,
|
|
21
20
|
isListViewOpened,
|
|
21
|
+
__unstableGetPreference,
|
|
22
22
|
} from '../selectors';
|
|
23
23
|
|
|
24
24
|
describe( 'selectors', () => {
|
|
25
25
|
const canUser = jest.fn( () => true );
|
|
26
26
|
const getEntityRecords = jest.fn( () => [] );
|
|
27
|
+
const get = jest.fn();
|
|
27
28
|
getCanUserCreateMedia.registry = {
|
|
28
29
|
select: jest.fn( () => ( { canUser } ) ),
|
|
29
30
|
};
|
|
30
31
|
getReusableBlocks.registry = {
|
|
31
32
|
select: jest.fn( () => ( { getEntityRecords } ) ),
|
|
32
33
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// See: https://github.com/WordPress/gutenberg/issues/14580
|
|
37
|
-
const state = {
|
|
38
|
-
preferences: {},
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
expect( isFeatureActive( state, 'chicken' ) ).toBe( false );
|
|
42
|
-
} );
|
|
43
|
-
|
|
44
|
-
it( 'should return true if feature is active', () => {
|
|
45
|
-
const state = {
|
|
46
|
-
preferences: {
|
|
47
|
-
features: {
|
|
48
|
-
chicken: true,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
expect( isFeatureActive( state, 'chicken' ) ).toBe( true );
|
|
54
|
-
} );
|
|
55
|
-
|
|
56
|
-
it( 'should return false if feature is not active', () => {
|
|
57
|
-
const state = {
|
|
58
|
-
preferences: {
|
|
59
|
-
features: {
|
|
60
|
-
chicken: false,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
expect( isFeatureActive( state, 'chicken' ) ).toBe( false );
|
|
66
|
-
} );
|
|
67
|
-
|
|
68
|
-
it( 'should return false if feature is not referred', () => {
|
|
69
|
-
const state = {
|
|
70
|
-
preferences: {
|
|
71
|
-
features: {},
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
expect( isFeatureActive( state, 'chicken' ) ).toBe( false );
|
|
76
|
-
} );
|
|
77
|
-
} );
|
|
34
|
+
__unstableGetPreference.registry = {
|
|
35
|
+
select: jest.fn( () => ( { get } ) ),
|
|
36
|
+
};
|
|
78
37
|
|
|
79
38
|
describe( 'getCanUserCreateMedia', () => {
|
|
80
39
|
it( "selects `canUser( 'create', 'media' )` from the core store", () => {
|
|
@@ -106,6 +65,10 @@ describe( 'selectors', () => {
|
|
|
106
65
|
it( "returns the settings when the user can't create media", () => {
|
|
107
66
|
canUser.mockReturnValueOnce( false );
|
|
108
67
|
canUser.mockReturnValueOnce( false );
|
|
68
|
+
get.mockImplementation( ( scope, name ) => {
|
|
69
|
+
if ( name === 'focusMode' ) return false;
|
|
70
|
+
if ( name === 'fixedToolbar' ) return false;
|
|
71
|
+
} );
|
|
109
72
|
const state = {
|
|
110
73
|
settings: {},
|
|
111
74
|
preferences: {},
|
|
@@ -123,14 +86,13 @@ describe( 'selectors', () => {
|
|
|
123
86
|
} );
|
|
124
87
|
|
|
125
88
|
it( 'returns the extended settings when the user can create media', () => {
|
|
89
|
+
get.mockImplementation( ( scope, name ) => {
|
|
90
|
+
if ( name === 'focusMode' ) return true;
|
|
91
|
+
if ( name === 'fixedToolbar' ) return true;
|
|
92
|
+
} );
|
|
93
|
+
|
|
126
94
|
const state = {
|
|
127
95
|
settings: { key: 'value' },
|
|
128
|
-
preferences: {
|
|
129
|
-
features: {
|
|
130
|
-
focusMode: true,
|
|
131
|
-
fixedToolbar: true,
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
96
|
editedPost: { type: 'wp_template_part' },
|
|
135
97
|
};
|
|
136
98
|
const setInserterOpened = () => {};
|
package/src/style.scss
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
@import "./components/global-styles/style.scss";
|
|
6
6
|
@import "./components/header/style.scss";
|
|
7
7
|
@import "./components/header/document-actions/style.scss";
|
|
8
|
-
@import "./components/header/more-menu/style.scss";
|
|
9
8
|
@import "./components/navigation-sidebar/navigation-toggle/style.scss";
|
|
10
9
|
@import "./components/navigation-sidebar/navigation-panel/style.scss";
|
|
11
10
|
@import "./components/list/style.scss";
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = FeatureToggle;
|
|
7
|
-
|
|
8
|
-
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
var _lodash = require("lodash");
|
|
11
|
-
|
|
12
|
-
var _data = require("@wordpress/data");
|
|
13
|
-
|
|
14
|
-
var _components = require("@wordpress/components");
|
|
15
|
-
|
|
16
|
-
var _i18n = require("@wordpress/i18n");
|
|
17
|
-
|
|
18
|
-
var _icons = require("@wordpress/icons");
|
|
19
|
-
|
|
20
|
-
var _a11y = require("@wordpress/a11y");
|
|
21
|
-
|
|
22
|
-
var _store = require("../../../store");
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* External dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* WordPress dependencies
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Internal dependencies
|
|
34
|
-
*/
|
|
35
|
-
function FeatureToggle(_ref) {
|
|
36
|
-
let {
|
|
37
|
-
feature,
|
|
38
|
-
label,
|
|
39
|
-
info,
|
|
40
|
-
messageActivated,
|
|
41
|
-
messageDeactivated
|
|
42
|
-
} = _ref;
|
|
43
|
-
|
|
44
|
-
const speakMessage = () => {
|
|
45
|
-
if (isActive) {
|
|
46
|
-
(0, _a11y.speak)(messageDeactivated || (0, _i18n.__)('Feature deactivated'));
|
|
47
|
-
} else {
|
|
48
|
-
(0, _a11y.speak)(messageActivated || (0, _i18n.__)('Feature activated'));
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const isActive = (0, _data.useSelect)(select => {
|
|
53
|
-
return select(_store.store).isFeatureActive(feature);
|
|
54
|
-
}, []);
|
|
55
|
-
const {
|
|
56
|
-
toggleFeature
|
|
57
|
-
} = (0, _data.useDispatch)(_store.store);
|
|
58
|
-
return (0, _element.createElement)(_components.MenuItem, {
|
|
59
|
-
icon: isActive && _icons.check,
|
|
60
|
-
isSelected: isActive,
|
|
61
|
-
onClick: (0, _lodash.flow)(toggleFeature.bind(null, feature), speakMessage),
|
|
62
|
-
role: "menuitemcheckbox",
|
|
63
|
-
info: info
|
|
64
|
-
}, label);
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/header/feature-toggle/index.js"],"names":["FeatureToggle","feature","label","info","messageActivated","messageDeactivated","speakMessage","isActive","select","editSiteStore","isFeatureActive","toggleFeature","check","bind"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;AAGe,SAASA,aAAT,OAMX;AAAA,MANmC;AACtCC,IAAAA,OADsC;AAEtCC,IAAAA,KAFsC;AAGtCC,IAAAA,IAHsC;AAItCC,IAAAA,gBAJsC;AAKtCC,IAAAA;AALsC,GAMnC;;AACH,QAAMC,YAAY,GAAG,MAAM;AAC1B,QAAKC,QAAL,EAAgB;AACf,uBAAOF,kBAAkB,IAAI,cAAI,qBAAJ,CAA7B;AACA,KAFD,MAEO;AACN,uBAAOD,gBAAgB,IAAI,cAAI,mBAAJ,CAA3B;AACA;AACD,GAND;;AAQA,QAAMG,QAAQ,GAAG,qBAAaC,MAAF,IAAc;AACzC,WAAOA,MAAM,CAAEC,YAAF,CAAN,CAAwBC,eAAxB,CAAyCT,OAAzC,CAAP;AACA,GAFgB,EAEd,EAFc,CAAjB;AAIA,QAAM;AAAEU,IAAAA;AAAF,MAAoB,uBAAaF,YAAb,CAA1B;AAEA,SACC,4BAAC,oBAAD;AACC,IAAA,IAAI,EAAGF,QAAQ,IAAIK,YADpB;AAEC,IAAA,UAAU,EAAGL,QAFd;AAGC,IAAA,OAAO,EAAG,kBACTI,aAAa,CAACE,IAAd,CAAoB,IAApB,EAA0BZ,OAA1B,CADS,EAETK,YAFS,CAHX;AAOC,IAAA,IAAI,EAAC,kBAPN;AAQC,IAAA,IAAI,EAAGH;AARR,KAUGD,KAVH,CADD;AAcA","sourcesContent":["/**\n * External dependencies\n */\nimport { flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nexport default function FeatureToggle( {\n\tfeature,\n\tlabel,\n\tinfo,\n\tmessageActivated,\n\tmessageDeactivated,\n} ) {\n\tconst speakMessage = () => {\n\t\tif ( isActive ) {\n\t\t\tspeak( messageDeactivated || __( 'Feature deactivated' ) );\n\t\t} else {\n\t\t\tspeak( messageActivated || __( 'Feature activated' ) );\n\t\t}\n\t};\n\n\tconst isActive = useSelect( ( select ) => {\n\t\treturn select( editSiteStore ).isFeatureActive( feature );\n\t}, [] );\n\n\tconst { toggleFeature } = useDispatch( editSiteStore );\n\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ isActive && check }\n\t\t\tisSelected={ isActive }\n\t\t\tonClick={ flow(\n\t\t\t\ttoggleFeature.bind( null, feature ),\n\t\t\t\tspeakMessage\n\t\t\t) }\n\t\t\trole=\"menuitemcheckbox\"\n\t\t\tinfo={ info }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"]}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = redirectToHomepage;
|
|
9
|
-
|
|
10
|
-
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
11
|
-
|
|
12
|
-
var _url = require("@wordpress/url");
|
|
13
|
-
|
|
14
|
-
var _history = _interopRequireDefault(require("../../utils/history"));
|
|
15
|
-
|
|
16
|
-
var _getIsListPage = _interopRequireDefault(require("../../utils/get-is-list-page"));
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* WordPress dependencies
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Internal dependencies
|
|
24
|
-
*/
|
|
25
|
-
function getNeedsHomepageRedirect(params) {
|
|
26
|
-
const {
|
|
27
|
-
postType
|
|
28
|
-
} = params;
|
|
29
|
-
return !(0, _getIsListPage.default)(params) && !['post', 'page', 'wp_template', 'wp_template_part'].includes(postType);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Returns the postType and postId of the default homepage.
|
|
33
|
-
*
|
|
34
|
-
* @param {string} siteUrl The URL of the site.
|
|
35
|
-
* @return {Object} An object containing the postType and postId properties
|
|
36
|
-
* or `undefined` if a homepage could not be found.
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
async function getHomepageParams(siteUrl) {
|
|
41
|
-
const siteSettings = await (0, _apiFetch.default)({
|
|
42
|
-
path: '/wp/v2/settings'
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
if (!siteSettings) {
|
|
46
|
-
throw new Error('`getHomepageParams`: unable to load site settings.');
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const {
|
|
50
|
-
show_on_front: showOnFront,
|
|
51
|
-
page_on_front: frontpageId
|
|
52
|
-
} = siteSettings; // If the user has set a page as the homepage, use those details.
|
|
53
|
-
|
|
54
|
-
if (showOnFront === 'page') {
|
|
55
|
-
return {
|
|
56
|
-
postType: 'page',
|
|
57
|
-
postId: frontpageId
|
|
58
|
-
};
|
|
59
|
-
} // Else get the home template.
|
|
60
|
-
// This matches the logic in `__experimentalGetTemplateForLink`.
|
|
61
|
-
// (packages/core-data/src/resolvers.js)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const template = await window.fetch((0, _url.addQueryArgs)(siteUrl, {
|
|
65
|
-
'_wp-find-template': true
|
|
66
|
-
})).then(response => {
|
|
67
|
-
if (!response.ok) {
|
|
68
|
-
throw new Error(`\`getHomepageParams\`: HTTP status error, ${response.status} ${response.statusText}`);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return response.json();
|
|
72
|
-
}).then(_ref => {
|
|
73
|
-
let {
|
|
74
|
-
data
|
|
75
|
-
} = _ref;
|
|
76
|
-
|
|
77
|
-
if (data.message) {
|
|
78
|
-
throw new Error(`\`getHomepageParams\`: REST API error, ${data.message}`);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return data;
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
if (!(template !== null && template !== void 0 && template.id)) {
|
|
85
|
-
throw new Error('`getHomepageParams`: unable to find home template.');
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return {
|
|
89
|
-
postType: 'wp_template',
|
|
90
|
-
postId: template.id
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
async function redirectToHomepage(siteUrl) {
|
|
95
|
-
const searchParams = new URLSearchParams(_history.default.location.search);
|
|
96
|
-
const params = Object.fromEntries(searchParams.entries());
|
|
97
|
-
|
|
98
|
-
if (getNeedsHomepageRedirect(params)) {
|
|
99
|
-
const homepageParams = await getHomepageParams(siteUrl);
|
|
100
|
-
|
|
101
|
-
if (homepageParams) {
|
|
102
|
-
_history.default.replace(homepageParams);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=redirect-to-homepage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/routes/redirect-to-homepage.js"],"names":["getNeedsHomepageRedirect","params","postType","includes","getHomepageParams","siteUrl","siteSettings","path","Error","show_on_front","showOnFront","page_on_front","frontpageId","postId","template","window","fetch","then","response","ok","status","statusText","json","data","message","id","redirectToHomepage","searchParams","URLSearchParams","history","location","search","Object","fromEntries","entries","homepageParams","replace"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,SAASA,wBAAT,CAAmCC,MAAnC,EAA4C;AAC3C,QAAM;AAAEC,IAAAA;AAAF,MAAeD,MAArB;AACA,SACC,CAAE,4BAAeA,MAAf,CAAF,IACA,CAAE,CAAE,MAAF,EAAU,MAAV,EAAkB,aAAlB,EAAiC,kBAAjC,EAAsDE,QAAtD,CACDD,QADC,CAFH;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeE,iBAAf,CAAkCC,OAAlC,EAA4C;AAC3C,QAAMC,YAAY,GAAG,MAAM,uBAAU;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAV,CAA3B;;AACA,MAAK,CAAED,YAAP,EAAsB;AACrB,UAAM,IAAIE,KAAJ,CAAW,oDAAX,CAAN;AACA;;AAED,QAAM;AACLC,IAAAA,aAAa,EAAEC,WADV;AAELC,IAAAA,aAAa,EAAEC;AAFV,MAGFN,YAHJ,CAN2C,CAW3C;;AACA,MAAKI,WAAW,KAAK,MAArB,EAA8B;AAC7B,WAAO;AACNR,MAAAA,QAAQ,EAAE,MADJ;AAENW,MAAAA,MAAM,EAAED;AAFF,KAAP;AAIA,GAjB0C,CAmB3C;AACA;AACA;;;AACA,QAAME,QAAQ,GAAG,MAAMC,MAAM,CAC3BC,KADqB,CACd,uBAAcX,OAAd,EAAuB;AAAE,yBAAqB;AAAvB,GAAvB,CADc,EAErBY,IAFqB,CAEbC,QAAF,IAAgB;AACtB,QAAK,CAAEA,QAAQ,CAACC,EAAhB,EAAqB;AACpB,YAAM,IAAIX,KAAJ,CACJ,6CAA6CU,QAAQ,CAACE,MAAQ,IAAIF,QAAQ,CAACG,UAAY,EADnF,CAAN;AAGA;;AAED,WAAOH,QAAQ,CAACI,IAAT,EAAP;AACA,GAVqB,EAWrBL,IAXqB,CAWf,QAAgB;AAAA,QAAd;AAAEM,MAAAA;AAAF,KAAc;;AACtB,QAAKA,IAAI,CAACC,OAAV,EAAoB;AACnB,YAAM,IAAIhB,KAAJ,CACJ,0CAA0Ce,IAAI,CAACC,OAAS,EADpD,CAAN;AAGA;;AAED,WAAOD,IAAP;AACA,GAnBqB,CAAvB;;AAqBA,MAAK,EAAET,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEW,EAAZ,CAAL,EAAsB;AACrB,UAAM,IAAIjB,KAAJ,CAAW,oDAAX,CAAN;AACA;;AAED,SAAO;AACNN,IAAAA,QAAQ,EAAE,aADJ;AAENW,IAAAA,MAAM,EAAEC,QAAQ,CAACW;AAFX,GAAP;AAIA;;AAEc,eAAeC,kBAAf,CAAmCrB,OAAnC,EAA6C;AAC3D,QAAMsB,YAAY,GAAG,IAAIC,eAAJ,CAAqBC,iBAAQC,QAAR,CAAiBC,MAAtC,CAArB;AACA,QAAM9B,MAAM,GAAG+B,MAAM,CAACC,WAAP,CAAoBN,YAAY,CAACO,OAAb,EAApB,CAAf;;AAEA,MAAKlC,wBAAwB,CAAEC,MAAF,CAA7B,EAA0C;AACzC,UAAMkC,cAAc,GAAG,MAAM/B,iBAAiB,CAAEC,OAAF,CAA9C;;AAEA,QAAK8B,cAAL,EAAsB;AACrBN,uBAAQO,OAAR,CAAiBD,cAAjB;AACA;AACD;AACD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport history from '../../utils/history';\nimport getIsListPage from '../../utils/get-is-list-page';\n\nfunction getNeedsHomepageRedirect( params ) {\n\tconst { postType } = params;\n\treturn (\n\t\t! getIsListPage( params ) &&\n\t\t! [ 'post', 'page', 'wp_template', 'wp_template_part' ].includes(\n\t\t\tpostType\n\t\t)\n\t);\n}\n\n/**\n * Returns the postType and postId of the default homepage.\n *\n * @param {string} siteUrl The URL of the site.\n * @return {Object} An object containing the postType and postId properties\n * or `undefined` if a homepage could not be found.\n */\nasync function getHomepageParams( siteUrl ) {\n\tconst siteSettings = await apiFetch( { path: '/wp/v2/settings' } );\n\tif ( ! siteSettings ) {\n\t\tthrow new Error( '`getHomepageParams`: unable to load site settings.' );\n\t}\n\n\tconst {\n\t\tshow_on_front: showOnFront,\n\t\tpage_on_front: frontpageId,\n\t} = siteSettings;\n\n\t// If the user has set a page as the homepage, use those details.\n\tif ( showOnFront === 'page' ) {\n\t\treturn {\n\t\t\tpostType: 'page',\n\t\t\tpostId: frontpageId,\n\t\t};\n\t}\n\n\t// Else get the home template.\n\t// This matches the logic in `__experimentalGetTemplateForLink`.\n\t// (packages/core-data/src/resolvers.js)\n\tconst template = await window\n\t\t.fetch( addQueryArgs( siteUrl, { '_wp-find-template': true } ) )\n\t\t.then( ( response ) => {\n\t\t\tif ( ! response.ok ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`\\`getHomepageParams\\`: HTTP status error, ${ response.status } ${ response.statusText }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t} )\n\t\t.then( ( { data } ) => {\n\t\t\tif ( data.message ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`\\`getHomepageParams\\`: REST API error, ${ data.message }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn data;\n\t\t} );\n\n\tif ( ! template?.id ) {\n\t\tthrow new Error( '`getHomepageParams`: unable to find home template.' );\n\t}\n\n\treturn {\n\t\tpostType: 'wp_template',\n\t\tpostId: template.id,\n\t};\n}\n\nexport default async function redirectToHomepage( siteUrl ) {\n\tconst searchParams = new URLSearchParams( history.location.search );\n\tconst params = Object.fromEntries( searchParams.entries() );\n\n\tif ( getNeedsHomepageRedirect( params ) ) {\n\t\tconst homepageParams = await getHomepageParams( siteUrl );\n\n\t\tif ( homepageParams ) {\n\t\t\thistory.replace( homepageParams );\n\t\t}\n\t}\n}\n"]}
|
package/build/store/defaults.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.PREFERENCES_DEFAULTS = void 0;
|
|
7
|
-
const PREFERENCES_DEFAULTS = {
|
|
8
|
-
features: {
|
|
9
|
-
welcomeGuide: true,
|
|
10
|
-
welcomeGuideStyles: true
|
|
11
|
-
},
|
|
12
|
-
editorMode: 'visual'
|
|
13
|
-
};
|
|
14
|
-
exports.PREFERENCES_DEFAULTS = PREFERENCES_DEFAULTS;
|
|
15
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/store/defaults.js"],"names":["PREFERENCES_DEFAULTS","features","welcomeGuide","welcomeGuideStyles","editorMode"],"mappings":";;;;;;AAAO,MAAMA,oBAAoB,GAAG;AACnCC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,YAAY,EAAE,IADL;AAETC,IAAAA,kBAAkB,EAAE;AAFX,GADyB;AAKnCC,EAAAA,UAAU,EAAE;AALuB,CAA7B","sourcesContent":["export const PREFERENCES_DEFAULTS = {\n\tfeatures: {\n\t\twelcomeGuide: true,\n\t\twelcomeGuideStyles: true,\n\t},\n\teditorMode: 'visual',\n};\n"]}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { createElement } from "@wordpress/element";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { flow } from 'lodash';
|
|
7
|
-
/**
|
|
8
|
-
* WordPress dependencies
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { useSelect, useDispatch } from '@wordpress/data';
|
|
12
|
-
import { MenuItem } from '@wordpress/components';
|
|
13
|
-
import { __ } from '@wordpress/i18n';
|
|
14
|
-
import { check } from '@wordpress/icons';
|
|
15
|
-
import { speak } from '@wordpress/a11y';
|
|
16
|
-
/**
|
|
17
|
-
* Internal dependencies
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
import { store as editSiteStore } from '../../../store';
|
|
21
|
-
export default function FeatureToggle(_ref) {
|
|
22
|
-
let {
|
|
23
|
-
feature,
|
|
24
|
-
label,
|
|
25
|
-
info,
|
|
26
|
-
messageActivated,
|
|
27
|
-
messageDeactivated
|
|
28
|
-
} = _ref;
|
|
29
|
-
|
|
30
|
-
const speakMessage = () => {
|
|
31
|
-
if (isActive) {
|
|
32
|
-
speak(messageDeactivated || __('Feature deactivated'));
|
|
33
|
-
} else {
|
|
34
|
-
speak(messageActivated || __('Feature activated'));
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const isActive = useSelect(select => {
|
|
39
|
-
return select(editSiteStore).isFeatureActive(feature);
|
|
40
|
-
}, []);
|
|
41
|
-
const {
|
|
42
|
-
toggleFeature
|
|
43
|
-
} = useDispatch(editSiteStore);
|
|
44
|
-
return createElement(MenuItem, {
|
|
45
|
-
icon: isActive && check,
|
|
46
|
-
isSelected: isActive,
|
|
47
|
-
onClick: flow(toggleFeature.bind(null, feature), speakMessage),
|
|
48
|
-
role: "menuitemcheckbox",
|
|
49
|
-
info: info
|
|
50
|
-
}, label);
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/header/feature-toggle/index.js"],"names":["flow","useSelect","useDispatch","MenuItem","__","check","speak","store","editSiteStore","FeatureToggle","feature","label","info","messageActivated","messageDeactivated","speakMessage","isActive","select","isFeatureActive","toggleFeature","bind"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,KAAT,QAAsB,iBAAtB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,gBAAvC;AAEA,eAAe,SAASC,aAAT,OAMX;AAAA,MANmC;AACtCC,IAAAA,OADsC;AAEtCC,IAAAA,KAFsC;AAGtCC,IAAAA,IAHsC;AAItCC,IAAAA,gBAJsC;AAKtCC,IAAAA;AALsC,GAMnC;;AACH,QAAMC,YAAY,GAAG,MAAM;AAC1B,QAAKC,QAAL,EAAgB;AACfV,MAAAA,KAAK,CAAEQ,kBAAkB,IAAIV,EAAE,CAAE,qBAAF,CAA1B,CAAL;AACA,KAFD,MAEO;AACNE,MAAAA,KAAK,CAAEO,gBAAgB,IAAIT,EAAE,CAAE,mBAAF,CAAxB,CAAL;AACA;AACD,GAND;;AAQA,QAAMY,QAAQ,GAAGf,SAAS,CAAIgB,MAAF,IAAc;AACzC,WAAOA,MAAM,CAAET,aAAF,CAAN,CAAwBU,eAAxB,CAAyCR,OAAzC,CAAP;AACA,GAFyB,EAEvB,EAFuB,CAA1B;AAIA,QAAM;AAAES,IAAAA;AAAF,MAAoBjB,WAAW,CAAEM,aAAF,CAArC;AAEA,SACC,cAAC,QAAD;AACC,IAAA,IAAI,EAAGQ,QAAQ,IAAIX,KADpB;AAEC,IAAA,UAAU,EAAGW,QAFd;AAGC,IAAA,OAAO,EAAGhB,IAAI,CACbmB,aAAa,CAACC,IAAd,CAAoB,IAApB,EAA0BV,OAA1B,CADa,EAEbK,YAFa,CAHf;AAOC,IAAA,IAAI,EAAC,kBAPN;AAQC,IAAA,IAAI,EAAGH;AARR,KAUGD,KAVH,CADD;AAcA","sourcesContent":["/**\n * External dependencies\n */\nimport { flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nexport default function FeatureToggle( {\n\tfeature,\n\tlabel,\n\tinfo,\n\tmessageActivated,\n\tmessageDeactivated,\n} ) {\n\tconst speakMessage = () => {\n\t\tif ( isActive ) {\n\t\t\tspeak( messageDeactivated || __( 'Feature deactivated' ) );\n\t\t} else {\n\t\t\tspeak( messageActivated || __( 'Feature activated' ) );\n\t\t}\n\t};\n\n\tconst isActive = useSelect( ( select ) => {\n\t\treturn select( editSiteStore ).isFeatureActive( feature );\n\t}, [] );\n\n\tconst { toggleFeature } = useDispatch( editSiteStore );\n\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ isActive && check }\n\t\t\tisSelected={ isActive }\n\t\t\tonClick={ flow(\n\t\t\t\ttoggleFeature.bind( null, feature ),\n\t\t\t\tspeakMessage\n\t\t\t) }\n\t\t\trole=\"menuitemcheckbox\"\n\t\t\tinfo={ info }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"]}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import apiFetch from '@wordpress/api-fetch';
|
|
5
|
-
import { addQueryArgs } from '@wordpress/url';
|
|
6
|
-
/**
|
|
7
|
-
* Internal dependencies
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import history from '../../utils/history';
|
|
11
|
-
import getIsListPage from '../../utils/get-is-list-page';
|
|
12
|
-
|
|
13
|
-
function getNeedsHomepageRedirect(params) {
|
|
14
|
-
const {
|
|
15
|
-
postType
|
|
16
|
-
} = params;
|
|
17
|
-
return !getIsListPage(params) && !['post', 'page', 'wp_template', 'wp_template_part'].includes(postType);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Returns the postType and postId of the default homepage.
|
|
21
|
-
*
|
|
22
|
-
* @param {string} siteUrl The URL of the site.
|
|
23
|
-
* @return {Object} An object containing the postType and postId properties
|
|
24
|
-
* or `undefined` if a homepage could not be found.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
async function getHomepageParams(siteUrl) {
|
|
29
|
-
const siteSettings = await apiFetch({
|
|
30
|
-
path: '/wp/v2/settings'
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
if (!siteSettings) {
|
|
34
|
-
throw new Error('`getHomepageParams`: unable to load site settings.');
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const {
|
|
38
|
-
show_on_front: showOnFront,
|
|
39
|
-
page_on_front: frontpageId
|
|
40
|
-
} = siteSettings; // If the user has set a page as the homepage, use those details.
|
|
41
|
-
|
|
42
|
-
if (showOnFront === 'page') {
|
|
43
|
-
return {
|
|
44
|
-
postType: 'page',
|
|
45
|
-
postId: frontpageId
|
|
46
|
-
};
|
|
47
|
-
} // Else get the home template.
|
|
48
|
-
// This matches the logic in `__experimentalGetTemplateForLink`.
|
|
49
|
-
// (packages/core-data/src/resolvers.js)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const template = await window.fetch(addQueryArgs(siteUrl, {
|
|
53
|
-
'_wp-find-template': true
|
|
54
|
-
})).then(response => {
|
|
55
|
-
if (!response.ok) {
|
|
56
|
-
throw new Error(`\`getHomepageParams\`: HTTP status error, ${response.status} ${response.statusText}`);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return response.json();
|
|
60
|
-
}).then(_ref => {
|
|
61
|
-
let {
|
|
62
|
-
data
|
|
63
|
-
} = _ref;
|
|
64
|
-
|
|
65
|
-
if (data.message) {
|
|
66
|
-
throw new Error(`\`getHomepageParams\`: REST API error, ${data.message}`);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return data;
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
if (!(template !== null && template !== void 0 && template.id)) {
|
|
73
|
-
throw new Error('`getHomepageParams`: unable to find home template.');
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return {
|
|
77
|
-
postType: 'wp_template',
|
|
78
|
-
postId: template.id
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export default async function redirectToHomepage(siteUrl) {
|
|
83
|
-
const searchParams = new URLSearchParams(history.location.search);
|
|
84
|
-
const params = Object.fromEntries(searchParams.entries());
|
|
85
|
-
|
|
86
|
-
if (getNeedsHomepageRedirect(params)) {
|
|
87
|
-
const homepageParams = await getHomepageParams(siteUrl);
|
|
88
|
-
|
|
89
|
-
if (homepageParams) {
|
|
90
|
-
history.replace(homepageParams);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=redirect-to-homepage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/routes/redirect-to-homepage.js"],"names":["apiFetch","addQueryArgs","history","getIsListPage","getNeedsHomepageRedirect","params","postType","includes","getHomepageParams","siteUrl","siteSettings","path","Error","show_on_front","showOnFront","page_on_front","frontpageId","postId","template","window","fetch","then","response","ok","status","statusText","json","data","message","id","redirectToHomepage","searchParams","URLSearchParams","location","search","Object","fromEntries","entries","homepageParams","replace"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,QAAP,MAAqB,sBAArB;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,qBAApB;AACA,OAAOC,aAAP,MAA0B,8BAA1B;;AAEA,SAASC,wBAAT,CAAmCC,MAAnC,EAA4C;AAC3C,QAAM;AAAEC,IAAAA;AAAF,MAAeD,MAArB;AACA,SACC,CAAEF,aAAa,CAAEE,MAAF,CAAf,IACA,CAAE,CAAE,MAAF,EAAU,MAAV,EAAkB,aAAlB,EAAiC,kBAAjC,EAAsDE,QAAtD,CACDD,QADC,CAFH;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeE,iBAAf,CAAkCC,OAAlC,EAA4C;AAC3C,QAAMC,YAAY,GAAG,MAAMV,QAAQ,CAAE;AAAEW,IAAAA,IAAI,EAAE;AAAR,GAAF,CAAnC;;AACA,MAAK,CAAED,YAAP,EAAsB;AACrB,UAAM,IAAIE,KAAJ,CAAW,oDAAX,CAAN;AACA;;AAED,QAAM;AACLC,IAAAA,aAAa,EAAEC,WADV;AAELC,IAAAA,aAAa,EAAEC;AAFV,MAGFN,YAHJ,CAN2C,CAW3C;;AACA,MAAKI,WAAW,KAAK,MAArB,EAA8B;AAC7B,WAAO;AACNR,MAAAA,QAAQ,EAAE,MADJ;AAENW,MAAAA,MAAM,EAAED;AAFF,KAAP;AAIA,GAjB0C,CAmB3C;AACA;AACA;;;AACA,QAAME,QAAQ,GAAG,MAAMC,MAAM,CAC3BC,KADqB,CACdnB,YAAY,CAAEQ,OAAF,EAAW;AAAE,yBAAqB;AAAvB,GAAX,CADE,EAErBY,IAFqB,CAEbC,QAAF,IAAgB;AACtB,QAAK,CAAEA,QAAQ,CAACC,EAAhB,EAAqB;AACpB,YAAM,IAAIX,KAAJ,CACJ,6CAA6CU,QAAQ,CAACE,MAAQ,IAAIF,QAAQ,CAACG,UAAY,EADnF,CAAN;AAGA;;AAED,WAAOH,QAAQ,CAACI,IAAT,EAAP;AACA,GAVqB,EAWrBL,IAXqB,CAWf,QAAgB;AAAA,QAAd;AAAEM,MAAAA;AAAF,KAAc;;AACtB,QAAKA,IAAI,CAACC,OAAV,EAAoB;AACnB,YAAM,IAAIhB,KAAJ,CACJ,0CAA0Ce,IAAI,CAACC,OAAS,EADpD,CAAN;AAGA;;AAED,WAAOD,IAAP;AACA,GAnBqB,CAAvB;;AAqBA,MAAK,EAAET,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEW,EAAZ,CAAL,EAAsB;AACrB,UAAM,IAAIjB,KAAJ,CAAW,oDAAX,CAAN;AACA;;AAED,SAAO;AACNN,IAAAA,QAAQ,EAAE,aADJ;AAENW,IAAAA,MAAM,EAAEC,QAAQ,CAACW;AAFX,GAAP;AAIA;;AAED,eAAe,eAAeC,kBAAf,CAAmCrB,OAAnC,EAA6C;AAC3D,QAAMsB,YAAY,GAAG,IAAIC,eAAJ,CAAqB9B,OAAO,CAAC+B,QAAR,CAAiBC,MAAtC,CAArB;AACA,QAAM7B,MAAM,GAAG8B,MAAM,CAACC,WAAP,CAAoBL,YAAY,CAACM,OAAb,EAApB,CAAf;;AAEA,MAAKjC,wBAAwB,CAAEC,MAAF,CAA7B,EAA0C;AACzC,UAAMiC,cAAc,GAAG,MAAM9B,iBAAiB,CAAEC,OAAF,CAA9C;;AAEA,QAAK6B,cAAL,EAAsB;AACrBpC,MAAAA,OAAO,CAACqC,OAAR,CAAiBD,cAAjB;AACA;AACD;AACD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport history from '../../utils/history';\nimport getIsListPage from '../../utils/get-is-list-page';\n\nfunction getNeedsHomepageRedirect( params ) {\n\tconst { postType } = params;\n\treturn (\n\t\t! getIsListPage( params ) &&\n\t\t! [ 'post', 'page', 'wp_template', 'wp_template_part' ].includes(\n\t\t\tpostType\n\t\t)\n\t);\n}\n\n/**\n * Returns the postType and postId of the default homepage.\n *\n * @param {string} siteUrl The URL of the site.\n * @return {Object} An object containing the postType and postId properties\n * or `undefined` if a homepage could not be found.\n */\nasync function getHomepageParams( siteUrl ) {\n\tconst siteSettings = await apiFetch( { path: '/wp/v2/settings' } );\n\tif ( ! siteSettings ) {\n\t\tthrow new Error( '`getHomepageParams`: unable to load site settings.' );\n\t}\n\n\tconst {\n\t\tshow_on_front: showOnFront,\n\t\tpage_on_front: frontpageId,\n\t} = siteSettings;\n\n\t// If the user has set a page as the homepage, use those details.\n\tif ( showOnFront === 'page' ) {\n\t\treturn {\n\t\t\tpostType: 'page',\n\t\t\tpostId: frontpageId,\n\t\t};\n\t}\n\n\t// Else get the home template.\n\t// This matches the logic in `__experimentalGetTemplateForLink`.\n\t// (packages/core-data/src/resolvers.js)\n\tconst template = await window\n\t\t.fetch( addQueryArgs( siteUrl, { '_wp-find-template': true } ) )\n\t\t.then( ( response ) => {\n\t\t\tif ( ! response.ok ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`\\`getHomepageParams\\`: HTTP status error, ${ response.status } ${ response.statusText }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t} )\n\t\t.then( ( { data } ) => {\n\t\t\tif ( data.message ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`\\`getHomepageParams\\`: REST API error, ${ data.message }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn data;\n\t\t} );\n\n\tif ( ! template?.id ) {\n\t\tthrow new Error( '`getHomepageParams`: unable to find home template.' );\n\t}\n\n\treturn {\n\t\tpostType: 'wp_template',\n\t\tpostId: template.id,\n\t};\n}\n\nexport default async function redirectToHomepage( siteUrl ) {\n\tconst searchParams = new URLSearchParams( history.location.search );\n\tconst params = Object.fromEntries( searchParams.entries() );\n\n\tif ( getNeedsHomepageRedirect( params ) ) {\n\t\tconst homepageParams = await getHomepageParams( siteUrl );\n\n\t\tif ( homepageParams ) {\n\t\t\thistory.replace( homepageParams );\n\t\t}\n\t}\n}\n"]}
|