@automattic/jetpack-components 0.40.3 → 0.41.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 +14 -1
- package/components/admin-page/index.tsx +1 -6
- package/components/admin-page/types.ts +0 -5
- package/components/boost-score-bar/index.tsx +1 -1
- package/components/boost-score-bar/style.scss +0 -1
- package/components/jetpack-footer/README.md +9 -9
- package/components/jetpack-footer/index.tsx +72 -5
- package/components/jetpack-footer/stories/index.stories.tsx +0 -1
- package/components/jetpack-footer/test/__snapshots__/component.tsx.snap +70 -1
- package/components/jetpack-footer/test/component.tsx +2 -5
- package/components/jetpack-footer/types.ts +21 -6
- package/package.json +6 -5
- package/tools/jp-redirect/index.ts +3 -3
- package/tools/jp-redirect/types.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
### This is a list detailing changes for the Jetpack RNA Components package releases.
|
|
4
4
|
|
|
5
|
+
## [0.41.0] - 2023-07-24
|
|
6
|
+
### Added
|
|
7
|
+
- Jetpack Footer: added generic links [#31627]
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Updated package dependencies. [#31999]
|
|
11
|
+
|
|
12
|
+
## [0.40.4] - 2023-07-18
|
|
13
|
+
### Changed
|
|
14
|
+
- Use Connection initial state for fetching Calypso Env. [#31906]
|
|
15
|
+
- Code quality improvements. [#31684]
|
|
16
|
+
|
|
5
17
|
## [0.40.3] - 2023-07-17
|
|
6
18
|
### Changed
|
|
7
19
|
- Updated package dependencies. [#31872]
|
|
8
|
-
- Updated package dependencies. [#31874]
|
|
9
20
|
|
|
10
21
|
## [0.40.2] - 2023-07-11
|
|
11
22
|
### Changed
|
|
@@ -768,6 +779,8 @@
|
|
|
768
779
|
### Changed
|
|
769
780
|
- Update node version requirement to 14.16.1
|
|
770
781
|
|
|
782
|
+
[0.41.0]: https://github.com/Automattic/jetpack-components/compare/0.40.4...0.41.0
|
|
783
|
+
[0.40.4]: https://github.com/Automattic/jetpack-components/compare/0.40.3...0.40.4
|
|
771
784
|
[0.40.3]: https://github.com/Automattic/jetpack-components/compare/0.40.2...0.40.3
|
|
772
785
|
[0.40.2]: https://github.com/Automattic/jetpack-components/compare/0.40.1...0.40.2
|
|
773
786
|
[0.40.1]: https://github.com/Automattic/jetpack-components/compare/0.40.0...0.40.1
|
|
@@ -20,7 +20,6 @@ const AdminPage: React.FC< AdminPageProps > = ( {
|
|
|
20
20
|
children,
|
|
21
21
|
moduleName = __( 'Jetpack', 'jetpack' ),
|
|
22
22
|
moduleNameHref,
|
|
23
|
-
a8cLogoHref,
|
|
24
23
|
showHeader = true,
|
|
25
24
|
showFooter = true,
|
|
26
25
|
showBackground = true,
|
|
@@ -43,11 +42,7 @@ const AdminPage: React.FC< AdminPageProps > = ( {
|
|
|
43
42
|
{ showFooter && (
|
|
44
43
|
<Container horizontalSpacing={ 5 }>
|
|
45
44
|
<Col>
|
|
46
|
-
<JetpackFooter
|
|
47
|
-
moduleName={ moduleName }
|
|
48
|
-
a8cLogoHref={ a8cLogoHref }
|
|
49
|
-
moduleNameHref={ moduleNameHref }
|
|
50
|
-
/>
|
|
45
|
+
<JetpackFooter moduleName={ moduleName } moduleNameHref={ moduleNameHref } />
|
|
51
46
|
</Col>
|
|
52
47
|
</Container>
|
|
53
48
|
) }
|
|
@@ -81,7 +81,7 @@ export const BoostScoreBar: FunctionComponent< BoostScoreBarProps > = ( {
|
|
|
81
81
|
<div className="jb-score-bar__score">{ score }</div>
|
|
82
82
|
) }
|
|
83
83
|
|
|
84
|
-
{ showPrevScores && prevScore && prevScore < score && (
|
|
84
|
+
{ showPrevScores && !! prevScore && prevScore < score && (
|
|
85
85
|
<div
|
|
86
86
|
className="jb-score-bar__no_boost_score"
|
|
87
87
|
style={ { left: `min(${ prevScoreOffset }%, calc( 100% - var(--clearance-space))` } }
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
Component that renders Jetpack Admin Footer.
|
|
4
4
|
It takes moduleName and URL to show in the footer.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
## How to use:
|
|
7
7
|
|
|
8
8
|
```js
|
|
9
|
-
<JetpackFooter
|
|
10
|
-
moduleName="Jetpack Search"
|
|
11
|
-
a8cLogoHref="https://www.jetpack.com"
|
|
12
|
-
className="jp-dashboard-footer"
|
|
13
|
-
/>
|
|
9
|
+
<JetpackFooter moduleName="Jetpack Search" className="jp-dashboard-footer" />
|
|
14
10
|
```
|
|
15
11
|
|
|
16
|
-
|
|
12
|
+
## Props
|
|
17
13
|
|
|
18
14
|
- `className`: String - (default: `jp-dashboard-footer`) the additional class name set on the element.
|
|
19
|
-
- `a8cLogoHref`: String - (default: `https://www.jetpack.com`) link to be added on 'An Automattic Airline'.
|
|
20
15
|
- `moduleName`: String - (default: `Jetpack`) set the name of the Module, e.g. `Jetpack Search`.
|
|
21
|
-
- `
|
|
16
|
+
- `moduleNameHref`: String - (default: `https://jetpack.com`) link that the Module name will link to.
|
|
17
|
+
- `menu`: JetpackFooterMenuItem[] - (default: `undefined`) set the menu items to be rendered in the footer.
|
|
18
|
+
- `onAboutClick`: () => void - (default: `undefined`) function called when the About link is clicked.
|
|
19
|
+
- `onPrivacyClick`: () => void - (default: `undefined`) function called when the Privacy link is clicked.
|
|
20
|
+
- `onTermsClick`: () => void - (default: `undefined`) function called when the Terms link is clicked.
|
|
21
|
+
- `siteAdminUrl`: String - (default: `undefined`) URL of the site WP Admin. Required to link to internal pages when applicable (e.g., Privacy).
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSelect } from '@wordpress/data';
|
|
2
|
+
import { __, _x } from '@wordpress/i18n';
|
|
2
3
|
import { Icon, external } from '@wordpress/icons';
|
|
3
4
|
import classnames from 'classnames';
|
|
4
5
|
import React from 'react';
|
|
6
|
+
import { getRedirectUrl } from '../..';
|
|
7
|
+
import { STORE_ID as CONNECTION_STORE_ID } from '../../../../js-packages/connection/state/store';
|
|
5
8
|
import AutomatticBylineLogo from '../automattic-byline-logo';
|
|
6
9
|
import './style.scss';
|
|
7
10
|
import JetpackLogo from '../jetpack-logo';
|
|
8
11
|
import useBreakpointMatch from '../layout/use-breakpoint-match';
|
|
9
|
-
import type { JetpackFooterProps } from './types';
|
|
12
|
+
import type { JetpackFooterProps, JetpackFooterMenuItem } from './types';
|
|
10
13
|
|
|
11
14
|
const JetpackIcon: React.FC = () => (
|
|
12
15
|
<JetpackLogo logoColor="#000" showText={ false } height={ 16 } aria-hidden="true" />
|
|
@@ -19,17 +22,74 @@ const JetpackIcon: React.FC = () => (
|
|
|
19
22
|
* @returns {React.ReactNode} JetpackFooter component.
|
|
20
23
|
*/
|
|
21
24
|
const JetpackFooter: React.FC< JetpackFooterProps > = ( {
|
|
22
|
-
a8cLogoHref = 'https://automattic.com',
|
|
23
25
|
moduleName = __( 'Jetpack', 'jetpack' ),
|
|
24
26
|
className,
|
|
25
27
|
moduleNameHref = 'https://jetpack.com',
|
|
26
28
|
menu,
|
|
29
|
+
siteAdminUrl,
|
|
30
|
+
onAboutClick,
|
|
31
|
+
onPrivacyClick,
|
|
32
|
+
onTermsClick,
|
|
27
33
|
...otherProps
|
|
28
34
|
} ) => {
|
|
29
35
|
const [ isSm ] = useBreakpointMatch( 'sm', '<=' );
|
|
30
36
|
const [ isMd ] = useBreakpointMatch( 'md', '<=' );
|
|
31
37
|
const [ isLg ] = useBreakpointMatch( 'lg', '>' );
|
|
32
38
|
|
|
39
|
+
const { isActive, connectedPlugins } = useSelect(
|
|
40
|
+
select => {
|
|
41
|
+
const connectionStatus = select( CONNECTION_STORE_ID ) as {
|
|
42
|
+
getConnectedPlugins: () => { slug: string }[];
|
|
43
|
+
getConnectionStatus: () => { isActive: boolean };
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
return {
|
|
47
|
+
connectedPlugins: connectionStatus?.getConnectedPlugins(),
|
|
48
|
+
...connectionStatus.getConnectionStatus(),
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
[ CONNECTION_STORE_ID ]
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
const areAdminLinksEnabled =
|
|
55
|
+
siteAdminUrl &&
|
|
56
|
+
// Some admin pages require the site to be connected (e.g., Privacy)
|
|
57
|
+
isActive &&
|
|
58
|
+
// Admin pages are part of the Jetpack plugin and required it to be installed
|
|
59
|
+
connectedPlugins?.some( ( { slug } ) => 'jetpack' === slug );
|
|
60
|
+
|
|
61
|
+
let items: JetpackFooterMenuItem[] = [
|
|
62
|
+
{
|
|
63
|
+
label: _x( 'About', 'Link to learn more about Jetpack.', 'jetpack' ),
|
|
64
|
+
title: __( 'About Jetpack', 'jetpack' ),
|
|
65
|
+
href: areAdminLinksEnabled
|
|
66
|
+
? new URL( 'admin.php?page=jetpack_about', siteAdminUrl ).href
|
|
67
|
+
: getRedirectUrl( 'jetpack-about' ),
|
|
68
|
+
target: '_blank',
|
|
69
|
+
onClick: onAboutClick,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
label: _x( 'Privacy', 'Shorthand for Privacy Policy.', 'jetpack' ),
|
|
73
|
+
title: __( "Automattic's Privacy Policy", 'jetpack' ),
|
|
74
|
+
href: areAdminLinksEnabled
|
|
75
|
+
? new URL( 'admin.php?page=jetpack#/privacy', siteAdminUrl ).href
|
|
76
|
+
: getRedirectUrl( 'a8c-privacy' ),
|
|
77
|
+
target: areAdminLinksEnabled ? '_self' : '_blank',
|
|
78
|
+
onClick: onPrivacyClick,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
label: _x( 'Terms', 'Shorthand for Terms of Service.', 'jetpack' ),
|
|
82
|
+
title: __( 'WordPress.com Terms of Service', 'jetpack' ),
|
|
83
|
+
href: getRedirectUrl( 'wpcom-tos' ),
|
|
84
|
+
target: '_blank',
|
|
85
|
+
onClick: onTermsClick,
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
if ( menu ) {
|
|
90
|
+
items = [ ...items, ...menu ];
|
|
91
|
+
}
|
|
92
|
+
|
|
33
93
|
const jetpackItemContent = (
|
|
34
94
|
<>
|
|
35
95
|
<JetpackIcon />
|
|
@@ -59,7 +119,7 @@ const JetpackFooter: React.FC< JetpackFooterProps > = ( {
|
|
|
59
119
|
jetpackItemContent
|
|
60
120
|
) }
|
|
61
121
|
</li>
|
|
62
|
-
{
|
|
122
|
+
{ items.map( item => {
|
|
63
123
|
const isButton = item.role === 'button';
|
|
64
124
|
const isExternalLink = ! isButton && item.target === '_blank';
|
|
65
125
|
|
|
@@ -85,7 +145,14 @@ const JetpackFooter: React.FC< JetpackFooterProps > = ( {
|
|
|
85
145
|
);
|
|
86
146
|
} ) }
|
|
87
147
|
<li className="jp-dashboard-footer__a8c-item">
|
|
88
|
-
<a
|
|
148
|
+
<a
|
|
149
|
+
href={
|
|
150
|
+
areAdminLinksEnabled
|
|
151
|
+
? new URL( 'admin.php?page=jetpack_about', siteAdminUrl ).href
|
|
152
|
+
: getRedirectUrl( 'a8c-about' )
|
|
153
|
+
}
|
|
154
|
+
aria-label={ __( 'An Automattic Airline', 'jetpack' ) }
|
|
155
|
+
>
|
|
89
156
|
<AutomatticBylineLogo aria-hidden="true" />
|
|
90
157
|
</a>
|
|
91
158
|
</li>
|
|
@@ -9,7 +9,6 @@ export default {
|
|
|
9
9
|
const Template: ComponentStory< typeof JetpackFooter > = args => <JetpackFooter { ...args } />;
|
|
10
10
|
|
|
11
11
|
const DefaultArgs = {
|
|
12
|
-
a8cLogoHref: 'https://automattic.com',
|
|
13
12
|
moduleName: 'Jetpack',
|
|
14
13
|
className: '',
|
|
15
14
|
moduleNameHref: 'https://jetpack.com',
|
|
@@ -36,6 +36,75 @@ exports[`JetpackFooter Render the component should match the snapshot: all props
|
|
|
36
36
|
Test module
|
|
37
37
|
</a>
|
|
38
38
|
</li>
|
|
39
|
+
<li>
|
|
40
|
+
<a
|
|
41
|
+
class="jp-dashboard-footer__menu-item is-external"
|
|
42
|
+
href="https://jetpack.com/redirect/?source=jetpack-about"
|
|
43
|
+
rel="noopener noreferrer"
|
|
44
|
+
target="_blank"
|
|
45
|
+
title="About Jetpack"
|
|
46
|
+
>
|
|
47
|
+
About
|
|
48
|
+
<svg
|
|
49
|
+
aria-hidden="true"
|
|
50
|
+
focusable="false"
|
|
51
|
+
height="16"
|
|
52
|
+
viewBox="0 0 24 24"
|
|
53
|
+
width="16"
|
|
54
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
55
|
+
>
|
|
56
|
+
<path
|
|
57
|
+
d="M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"
|
|
58
|
+
/>
|
|
59
|
+
</svg>
|
|
60
|
+
</a>
|
|
61
|
+
</li>
|
|
62
|
+
<li>
|
|
63
|
+
<a
|
|
64
|
+
class="jp-dashboard-footer__menu-item is-external"
|
|
65
|
+
href="https://jetpack.com/redirect/?source=a8c-privacy"
|
|
66
|
+
rel="noopener noreferrer"
|
|
67
|
+
target="_blank"
|
|
68
|
+
title="Automattic's Privacy Policy"
|
|
69
|
+
>
|
|
70
|
+
Privacy
|
|
71
|
+
<svg
|
|
72
|
+
aria-hidden="true"
|
|
73
|
+
focusable="false"
|
|
74
|
+
height="16"
|
|
75
|
+
viewBox="0 0 24 24"
|
|
76
|
+
width="16"
|
|
77
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
78
|
+
>
|
|
79
|
+
<path
|
|
80
|
+
d="M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"
|
|
81
|
+
/>
|
|
82
|
+
</svg>
|
|
83
|
+
</a>
|
|
84
|
+
</li>
|
|
85
|
+
<li>
|
|
86
|
+
<a
|
|
87
|
+
class="jp-dashboard-footer__menu-item is-external"
|
|
88
|
+
href="https://jetpack.com/redirect/?source=wpcom-tos"
|
|
89
|
+
rel="noopener noreferrer"
|
|
90
|
+
target="_blank"
|
|
91
|
+
title="WordPress.com Terms of Service"
|
|
92
|
+
>
|
|
93
|
+
Terms
|
|
94
|
+
<svg
|
|
95
|
+
aria-hidden="true"
|
|
96
|
+
focusable="false"
|
|
97
|
+
height="16"
|
|
98
|
+
viewBox="0 0 24 24"
|
|
99
|
+
width="16"
|
|
100
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
101
|
+
>
|
|
102
|
+
<path
|
|
103
|
+
d="M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"
|
|
104
|
+
/>
|
|
105
|
+
</svg>
|
|
106
|
+
</a>
|
|
107
|
+
</li>
|
|
39
108
|
<li>
|
|
40
109
|
<a
|
|
41
110
|
class="jp-dashboard-footer__menu-item"
|
|
@@ -81,7 +150,7 @@ exports[`JetpackFooter Render the component should match the snapshot: all props
|
|
|
81
150
|
>
|
|
82
151
|
<a
|
|
83
152
|
aria-label="An Automattic Airline"
|
|
84
|
-
href="https://
|
|
153
|
+
href="https://jetpack.com/redirect/?source=a8c-about"
|
|
85
154
|
>
|
|
86
155
|
<svg
|
|
87
156
|
aria-hidden="true"
|
|
@@ -7,7 +7,6 @@ describe( 'JetpackFooter', () => {
|
|
|
7
7
|
const className = 'sample-classname';
|
|
8
8
|
const moduleName = 'Test module';
|
|
9
9
|
const moduleNameHref = 'https://jetpack.com/path/to-some-page';
|
|
10
|
-
const a8cLogoHref = 'https://automattic.com';
|
|
11
10
|
|
|
12
11
|
describe( 'Render the component', () => {
|
|
13
12
|
const menu = [
|
|
@@ -71,12 +70,11 @@ describe( 'JetpackFooter', () => {
|
|
|
71
70
|
} );
|
|
72
71
|
|
|
73
72
|
it( 'should render the Automattic logo', () => {
|
|
74
|
-
render( <JetpackFooter
|
|
73
|
+
render( <JetpackFooter /> );
|
|
75
74
|
|
|
76
75
|
const element = screen.getByLabelText( 'An Automattic Airline', { selector: 'a' } );
|
|
77
76
|
|
|
78
77
|
expect( element ).toBeInTheDocument();
|
|
79
|
-
expect( element ).toHaveAttribute( 'href', a8cLogoHref );
|
|
80
78
|
} );
|
|
81
79
|
|
|
82
80
|
it( 'should render a list', () => {
|
|
@@ -86,7 +84,7 @@ describe( 'JetpackFooter', () => {
|
|
|
86
84
|
|
|
87
85
|
expect( element ).toBeInTheDocument();
|
|
88
86
|
// eslint-disable-next-line testing-library/no-node-access
|
|
89
|
-
expect( element.children ).toHaveLength( 2 + menu.length );
|
|
87
|
+
expect( element.children ).toHaveLength( 2 + 3 + menu.length ); // 2 logos, 3 generic links
|
|
90
88
|
} );
|
|
91
89
|
|
|
92
90
|
it( 'should render the links', () => {
|
|
@@ -113,7 +111,6 @@ describe( 'JetpackFooter', () => {
|
|
|
113
111
|
className={ className }
|
|
114
112
|
moduleName={ moduleName }
|
|
115
113
|
moduleNameHref={ moduleNameHref }
|
|
116
|
-
a8cLogoHref={ a8cLogoHref }
|
|
117
114
|
menu={ menu }
|
|
118
115
|
/>
|
|
119
116
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type JetpackFooterMenuItem = {
|
|
1
|
+
export type JetpackFooterMenuItem = {
|
|
2
2
|
href: string;
|
|
3
3
|
label: string;
|
|
4
4
|
onClick?: () => void;
|
|
@@ -9,11 +9,6 @@ type JetpackFooterMenuItem = {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export type JetpackFooterProps = {
|
|
12
|
-
/**
|
|
13
|
-
* Link for 'An Automattic Airline'.
|
|
14
|
-
*/
|
|
15
|
-
a8cLogoHref?: string;
|
|
16
|
-
|
|
17
12
|
/**
|
|
18
13
|
* Name of the module, e.g. 'Jetpack Search'.
|
|
19
14
|
*/
|
|
@@ -33,4 +28,24 @@ export type JetpackFooterProps = {
|
|
|
33
28
|
* Navigation menu to display in the footer.
|
|
34
29
|
*/
|
|
35
30
|
menu?: JetpackFooterMenuItem[];
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* URL of the site WP Admin.
|
|
34
|
+
*/
|
|
35
|
+
siteAdminUrl?: string;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Function called when the About link is clicked.
|
|
39
|
+
*/
|
|
40
|
+
onAboutClick?: () => void;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Function called when the Privacy link is clicked.
|
|
44
|
+
*/
|
|
45
|
+
onPrivacyClick?: () => void;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Function called when the Terms link is clicked.
|
|
49
|
+
*/
|
|
50
|
+
onTermsClick?: () => void;
|
|
36
51
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automattic/jetpack-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "Jetpack Components Package",
|
|
5
5
|
"author": "Automattic",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"@wordpress/browserslist-config": "5.20.0",
|
|
20
20
|
"@wordpress/components": "25.3.0",
|
|
21
21
|
"@wordpress/compose": "6.14.0",
|
|
22
|
+
"@wordpress/data": "9.7.0",
|
|
22
23
|
"@wordpress/date": "4.37.0",
|
|
23
24
|
"@wordpress/element": "5.14.0",
|
|
24
25
|
"@wordpress/i18n": "4.37.0",
|
|
@@ -29,13 +30,13 @@
|
|
|
29
30
|
"react-slider": "2.0.5"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
|
-
"@automattic/jetpack-base-styles": "^0.6.
|
|
33
|
+
"@automattic/jetpack-base-styles": "^0.6.4",
|
|
33
34
|
"@babel/core": "7.22.9",
|
|
34
35
|
"@babel/preset-react": "7.22.5",
|
|
35
36
|
"@jest/globals": "29.4.3",
|
|
36
|
-
"@storybook/addon-actions": "7.0
|
|
37
|
-
"@storybook/blocks": "7.0
|
|
38
|
-
"@storybook/react": "7.0
|
|
37
|
+
"@storybook/addon-actions": "7.1.0",
|
|
38
|
+
"@storybook/blocks": "7.1.0",
|
|
39
|
+
"@storybook/react": "7.1.0",
|
|
39
40
|
"@testing-library/dom": "8.19.1",
|
|
40
41
|
"@testing-library/react": "13.4.0",
|
|
41
42
|
"@testing-library/user-event": "14.4.3",
|
|
@@ -25,7 +25,7 @@ export default function getRedirectUrl( source: string, args: GetRedirectUrlArgs
|
|
|
25
25
|
|
|
26
26
|
let calypsoEnv;
|
|
27
27
|
if ( typeof window !== 'undefined' ) {
|
|
28
|
-
calypsoEnv = window
|
|
28
|
+
calypsoEnv = window?.JP_CONNECTION_INITIAL_STATE?.calypsoEnv;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
if ( source.search( 'https://' ) === 0 ) {
|
|
@@ -38,9 +38,9 @@ export default function getRedirectUrl( source: string, args: GetRedirectUrlArgs
|
|
|
38
38
|
queryVars.source = encodeURIComponent( source );
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
for ( const argName in args ) {
|
|
42
42
|
queryVars[ argName ] = encodeURIComponent( args[ argName ] );
|
|
43
|
-
}
|
|
43
|
+
}
|
|
44
44
|
|
|
45
45
|
if (
|
|
46
46
|
! Object.keys( queryVars ).includes( 'site' ) &&
|