@newskit-render/core 4.5.2 → 4.6.0-alpha.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 +8 -0
- package/README.md +4 -4
- package/__tests__/pages/[articleSlug].test.tsx +3 -3
- package/__tests__/pages/home.test.tsx +3 -3
- package/__tests__/pages/relatedArticles.test.tsx +3 -3
- package/components/AccountDropdown/AccountDropdown.tsx +65 -0
- package/components/AccountDropdown/__tests__/AcountDropdown.test.tsx +83 -0
- package/components/AccountDropdown/accounts.ts +47 -0
- package/components/AccountDropdown/index.tsx +2 -0
- package/components/AccountDropdown/utils.ts +21 -0
- package/package.json +6 -6
- package/pages/[section]/[articleId]/[articleSlug].tsx +6 -4
- package/pages/[section]/[articleId]/relatedArticles.tsx +6 -4
- package/pages/[section]/index.tsx +6 -4
- package/pages/account/cancellation/index.tsx +6 -4
- package/pages/account/edit/[field].tsx +6 -4
- package/pages/account/holiday-stop/index.tsx +6 -4
- package/pages/account/index.tsx +17 -5
- package/pages/account/newsletters-and-alerts/index.tsx +6 -4
- package/pages/account/payment/index.tsx +6 -4
- package/pages/account/subscription-and-billing/index.tsx +6 -4
- package/pages/api/account/get-session/index.ts +19 -8
- package/pages/index.tsx +6 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.5.2](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@4.5.2-alpha.1...@newskit-render/core@4.5.2) (2023-05-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @newskit-render/core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [4.5.1](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@4.5.1-alpha.1...@newskit-render/core@4.5.1) (2023-04-27)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @newskit-render/core
|
package/README.md
CHANGED
|
@@ -253,20 +253,20 @@ const AppContextProvider = ({ children }: { children: JSX.Element }) => {
|
|
|
253
253
|
export { AppContextProvider, AppContext }
|
|
254
254
|
```
|
|
255
255
|
|
|
256
|
-
###
|
|
256
|
+
### cra-effected comments
|
|
257
257
|
|
|
258
258
|
You may see some lines of code that have comments next to them:
|
|
259
259
|
|
|
260
260
|
```
|
|
261
|
-
code here
|
|
261
|
+
code here /* cra-effected */
|
|
262
262
|
```
|
|
263
263
|
|
|
264
264
|
Or around them:
|
|
265
265
|
|
|
266
266
|
```
|
|
267
|
-
|
|
267
|
+
/* start cra-effected */
|
|
268
268
|
code here
|
|
269
|
-
|
|
269
|
+
/* end cra-effected */
|
|
270
270
|
```
|
|
271
271
|
|
|
272
272
|
This comment denotes that the line or lines in between are effected by the running of the [@newskit-render/create-render-app package](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/create-render-app).
|
|
@@ -97,13 +97,13 @@ jest.mock('newrelic', () => {
|
|
|
97
97
|
}
|
|
98
98
|
})
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
/* start cra-effected */
|
|
101
101
|
jest.mock('@newskit-render/feature-flags', () => ({
|
|
102
102
|
initAndGetFeatureFlag: jest
|
|
103
103
|
.fn()
|
|
104
104
|
.mockImplementation(() => Promise.resolve({ test: 'test' })),
|
|
105
105
|
}))
|
|
106
|
-
|
|
106
|
+
/* end cra-effected */
|
|
107
107
|
|
|
108
108
|
jest.mock('@newskit-render/api', () => ({
|
|
109
109
|
ClientTypes: { nkapi: 'nkapi' },
|
|
@@ -147,7 +147,7 @@ describe('Article', () => {
|
|
|
147
147
|
...props,
|
|
148
148
|
showAds: true,
|
|
149
149
|
user,
|
|
150
|
-
featureFlags: { test: 'test' }
|
|
150
|
+
featureFlags: { test: 'test' } /* cra-effected */,
|
|
151
151
|
},
|
|
152
152
|
})
|
|
153
153
|
expect(setHeaderMock).toHaveBeenCalledWith(
|
|
@@ -25,13 +25,13 @@ jest.mock('cross-fetch', () =>
|
|
|
25
25
|
)
|
|
26
26
|
)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
/* start cra-effected */
|
|
29
29
|
jest.mock('@newskit-render/feature-flags', () => ({
|
|
30
30
|
initAndGetFeatureFlag: jest
|
|
31
31
|
.fn()
|
|
32
32
|
.mockImplementation(() => Promise.resolve({ test: 'test' })),
|
|
33
33
|
}))
|
|
34
|
-
|
|
34
|
+
/* end cra-effected */
|
|
35
35
|
|
|
36
36
|
jest.mock('@newskit-render/api', () => ({
|
|
37
37
|
ClientTypes: { nkapi: 'nkapi' },
|
|
@@ -90,7 +90,7 @@ describe('getServerSideProps', () => {
|
|
|
90
90
|
},
|
|
91
91
|
showAds: true,
|
|
92
92
|
user,
|
|
93
|
-
featureFlags: { test: 'test' }
|
|
93
|
+
featureFlags: { test: 'test' } /* cra-effected */,
|
|
94
94
|
},
|
|
95
95
|
})
|
|
96
96
|
)
|
|
@@ -34,13 +34,13 @@ jest.mock('cross-fetch', () =>
|
|
|
34
34
|
)
|
|
35
35
|
)
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
/* start cra-effected */
|
|
38
38
|
jest.mock('@newskit-render/feature-flags', () => ({
|
|
39
39
|
initAndGetFeatureFlag: jest
|
|
40
40
|
.fn()
|
|
41
41
|
.mockImplementation(() => Promise.resolve({ test: 'test' })),
|
|
42
42
|
}))
|
|
43
|
-
|
|
43
|
+
/* end cra-effected */
|
|
44
44
|
|
|
45
45
|
jest.mock('@newskit-render/api', () => ({
|
|
46
46
|
ClientTypes: { nkapi: 'nkapi' },
|
|
@@ -74,7 +74,7 @@ describe('Article', () => {
|
|
|
74
74
|
...props,
|
|
75
75
|
showAds: true,
|
|
76
76
|
user,
|
|
77
|
-
featureFlags: { test: 'test' }
|
|
77
|
+
featureFlags: { test: 'test' } /* cra-effected */,
|
|
78
78
|
},
|
|
79
79
|
})
|
|
80
80
|
expect(setHeaderMock).toHaveBeenCalledWith(
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react'
|
|
2
|
+
import { useRouter } from 'next/router'
|
|
3
|
+
import fetch from 'cross-fetch'
|
|
4
|
+
import { setCookie, deleteCookie } from './utils'
|
|
5
|
+
import { options } from './accounts'
|
|
6
|
+
|
|
7
|
+
export const AccountDropdown: React.FC = () => {
|
|
8
|
+
const [isOpen, setIsOpen] = useState(false)
|
|
9
|
+
const router = useRouter()
|
|
10
|
+
const dropdownOpenHandler = (e) => {
|
|
11
|
+
if (e.code === 'NumpadSubtract' || e.code === 'Backquote') {
|
|
12
|
+
setIsOpen((currentState) => {
|
|
13
|
+
const updatedState = !currentState
|
|
14
|
+
|
|
15
|
+
return updatedState
|
|
16
|
+
})
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const handleChange = async (e) => {
|
|
21
|
+
const result = await fetch('/api/account/get-session', {
|
|
22
|
+
method: 'post',
|
|
23
|
+
body: JSON.stringify({ option: e.target.value }),
|
|
24
|
+
})
|
|
25
|
+
const data = await result.json()
|
|
26
|
+
|
|
27
|
+
deleteCookie('acs_ngn', '/', null)
|
|
28
|
+
deleteCookie('acs_tnl', '/', null)
|
|
29
|
+
setCookie(
|
|
30
|
+
data.accountProviderCookieName,
|
|
31
|
+
data.value,
|
|
32
|
+
new Date(2032, 1, 1),
|
|
33
|
+
'/',
|
|
34
|
+
null,
|
|
35
|
+
true
|
|
36
|
+
)
|
|
37
|
+
router.reload()
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
window.addEventListener('keyup', dropdownOpenHandler)
|
|
42
|
+
return () => window.removeEventListener('keyup', dropdownOpenHandler)
|
|
43
|
+
}, [])
|
|
44
|
+
|
|
45
|
+
return isOpen ? (
|
|
46
|
+
<select
|
|
47
|
+
onChange={handleChange}
|
|
48
|
+
data-testid="account-switcher"
|
|
49
|
+
style={{
|
|
50
|
+
position: 'fixed',
|
|
51
|
+
top: '3px',
|
|
52
|
+
right: '3px',
|
|
53
|
+
maxWidth: '150px',
|
|
54
|
+
zIndex: 3,
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
<option>Select subscription</option>
|
|
58
|
+
{options.map((option) => (
|
|
59
|
+
<option key={option} value={option}>
|
|
60
|
+
{option}
|
|
61
|
+
</option>
|
|
62
|
+
))}
|
|
63
|
+
</select>
|
|
64
|
+
) : null
|
|
65
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { fireEvent, waitFor } from '@testing-library/react'
|
|
2
|
+
import { AccountDropdown, getAccounts } from '../'
|
|
3
|
+
import { renderWithTheme } from '../../../helpers/test-utils'
|
|
4
|
+
import { useRouter } from 'next/router'
|
|
5
|
+
|
|
6
|
+
const useRouterMock = useRouter as jest.Mock
|
|
7
|
+
|
|
8
|
+
jest.mock('next/router', () => {
|
|
9
|
+
return {
|
|
10
|
+
useRouter: jest.fn(),
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
jest.mock('cross-fetch', () =>
|
|
15
|
+
jest
|
|
16
|
+
.fn()
|
|
17
|
+
.mockImplementationOnce(() =>
|
|
18
|
+
Promise.resolve({
|
|
19
|
+
json: () => ({ accountProviderCookieName: 'test', value: 'test' }),
|
|
20
|
+
})
|
|
21
|
+
)
|
|
22
|
+
.mockImplementationOnce(() => {
|
|
23
|
+
throw new Error()
|
|
24
|
+
})
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
describe('AccountDropdown', () => {
|
|
28
|
+
beforeEach(() => {
|
|
29
|
+
jest.clearAllMocks()
|
|
30
|
+
useRouterMock.mockImplementation(() => {
|
|
31
|
+
return { reload: jest.fn() }
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it('Should not render the dropdown unless it is toggled', () => {
|
|
36
|
+
const { queryByDisplayValue } = renderWithTheme(AccountDropdown)
|
|
37
|
+
|
|
38
|
+
const dropdown = queryByDisplayValue('Select subscription')
|
|
39
|
+
|
|
40
|
+
expect(dropdown).toBeFalsy()
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('Should render the dropdown when Backquote is pressed', () => {
|
|
44
|
+
const { container, getByDisplayValue } = renderWithTheme(AccountDropdown)
|
|
45
|
+
|
|
46
|
+
fireEvent.keyUp(container, { code: 'Backquote' })
|
|
47
|
+
|
|
48
|
+
expect(getByDisplayValue('Select subscription')).toBeTruthy()
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
it('Should render the dropdown when NumpadSubtract is pressed', () => {
|
|
52
|
+
const { container, getByDisplayValue } = renderWithTheme(AccountDropdown)
|
|
53
|
+
|
|
54
|
+
fireEvent.keyUp(container, { code: 'NumpadSubtract' })
|
|
55
|
+
|
|
56
|
+
expect(getByDisplayValue('Select subscription')).toBeTruthy()
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
it('Should select an account', async () => {
|
|
60
|
+
const { container, getByTestId } = renderWithTheme(AccountDropdown)
|
|
61
|
+
|
|
62
|
+
await waitFor(() => {
|
|
63
|
+
fireEvent.keyUp(container, { code: 'NumpadSubtract' })
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
await waitFor(() => {
|
|
67
|
+
fireEvent.change(getByTestId('account-switcher'), {
|
|
68
|
+
target: { value: 'Times voucher subscription credit card' },
|
|
69
|
+
})
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
expect(useRouterMock).toHaveBeenCalled()
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
it('Should return account object', () => {
|
|
76
|
+
const options = getAccounts('sun', 'times')
|
|
77
|
+
expect(options['Sun with subscription']).toEqual({
|
|
78
|
+
username: 'render-e2e-subscription@yopmail.com',
|
|
79
|
+
password: 'sun',
|
|
80
|
+
tenant: 'SUN',
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
})
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const options = [
|
|
2
|
+
'Sun with subscription',
|
|
3
|
+
'Times voucher subscription credit card',
|
|
4
|
+
'Times voucher subscription direct debit',
|
|
5
|
+
'Times voucher subscription paypal',
|
|
6
|
+
'Time DTC print credit card',
|
|
7
|
+
'Time Digital subscription credit card',
|
|
8
|
+
'Time DigiPrint subscription credit card',
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
export const getAccounts = (sunPassword, timesPassword) => ({
|
|
12
|
+
'Sun with subscription': {
|
|
13
|
+
username: 'render-e2e-subscription@yopmail.com',
|
|
14
|
+
password: sunPassword,
|
|
15
|
+
tenant: 'SUN',
|
|
16
|
+
},
|
|
17
|
+
'Times voucher subscription credit card': {
|
|
18
|
+
username: 'cmp-test-card-20-09-2022@yopmail.com',
|
|
19
|
+
password: timesPassword,
|
|
20
|
+
tenant: 'TIMES',
|
|
21
|
+
},
|
|
22
|
+
'Times voucher subscription direct debit': {
|
|
23
|
+
username: 'cmp-test-direct-20-09-22@yopmail.com',
|
|
24
|
+
password: timesPassword,
|
|
25
|
+
tenant: 'TIMES',
|
|
26
|
+
},
|
|
27
|
+
'Times voucher subscription paypal': {
|
|
28
|
+
username: 'cmp-test-paypal-20-09-22@yopmail.com',
|
|
29
|
+
password: timesPassword,
|
|
30
|
+
tenant: 'TIMES',
|
|
31
|
+
},
|
|
32
|
+
'Time DTC print credit card': {
|
|
33
|
+
username: 'cmp-dtc-card-20-09-22@yopmail.com',
|
|
34
|
+
password: timesPassword,
|
|
35
|
+
tenant: 'TIMES',
|
|
36
|
+
},
|
|
37
|
+
'Time Digital subscription credit card': {
|
|
38
|
+
username: 'cmp-digi-card-20-09-22@yopmail.com',
|
|
39
|
+
password: timesPassword,
|
|
40
|
+
tenant: 'TIMES',
|
|
41
|
+
},
|
|
42
|
+
'Time DigiPrint subscription credit card': {
|
|
43
|
+
username: 'digi-print-card-15-11-22@yopmail.com',
|
|
44
|
+
password: timesPassword,
|
|
45
|
+
tenant: 'TIMES',
|
|
46
|
+
},
|
|
47
|
+
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const setCookie = (name, value, expires, path, domain, secure) => {
|
|
2
|
+
let cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)
|
|
3
|
+
|
|
4
|
+
if (expires) {
|
|
5
|
+
cookie += '; expires=' + expires.toUTCString()
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (path) {
|
|
9
|
+
cookie += '; path=' + path
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (secure) {
|
|
13
|
+
cookie += '; secure'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
document.cookie = cookie
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const deleteCookie = (name, path, domain) => {
|
|
20
|
+
setCookie(name, '', new Date(0), path, domain, false)
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newskit-render/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0-alpha.0",
|
|
4
4
|
"description": "Newskit Render - Core package",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"@emotion/styled": "11.9.3",
|
|
42
42
|
"@newskit-render/api": "^1.6.8",
|
|
43
43
|
"@newskit-render/auth": "^1.3.11",
|
|
44
|
-
"@newskit-render/checkout": "^3.2.0",
|
|
44
|
+
"@newskit-render/checkout": "^3.2.1-alpha.0",
|
|
45
45
|
"@newskit-render/feature-flags": "^1.4.11",
|
|
46
46
|
"@newskit-render/feed": "^1.4.18",
|
|
47
|
-
"@newskit-render/my-account": "^6.6.0",
|
|
48
|
-
"@newskit-render/shared-components": "^3.7.0",
|
|
49
|
-
"@newskit-render/standalone-components": "^3.7.0",
|
|
50
|
-
"@newskit-render/validation": "^1.
|
|
47
|
+
"@newskit-render/my-account": "^6.6.1-alpha.0",
|
|
48
|
+
"@newskit-render/shared-components": "^3.7.1-alpha.0",
|
|
49
|
+
"@newskit-render/standalone-components": "^3.7.1-alpha.0",
|
|
50
|
+
"@newskit-render/validation": "^1.7.0-alpha.0",
|
|
51
51
|
"@next/font": "13.1.6",
|
|
52
52
|
"cross-fetch": "3.1.5",
|
|
53
53
|
"graphql": "16.6.0",
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import { UserData } from '@newskit-render/my-account'
|
|
10
10
|
import { ArticleRecommendationsProvider } from '@newskit-render/standalone-components'
|
|
11
11
|
import { getHost } from '@newskit-render/shared-components'
|
|
12
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
12
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
13
13
|
import { GET_UNIVERSAL_ARTICLE } from '../../../queries'
|
|
14
14
|
import ArticlePage, { UniversalArticle } from '../../../components/article'
|
|
15
15
|
import { fetchUser } from '../../../helpers/getUser'
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
gscId as configGscId,
|
|
21
21
|
newskitApiEnvUrl,
|
|
22
22
|
newskitApiXApiKey,
|
|
23
|
-
optimizelysdkKey
|
|
23
|
+
optimizelysdkKey /* cra-effected */,
|
|
24
24
|
} from '../../../config'
|
|
25
25
|
|
|
26
26
|
export type ArticleSlug = {
|
|
@@ -77,7 +77,9 @@ export async function getServerSideProps(context) {
|
|
|
77
77
|
}),
|
|
78
78
|
await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
|
|
79
79
|
])
|
|
80
|
-
|
|
80
|
+
/* start cra-effected */
|
|
81
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
82
|
+
/* end cra-effected */
|
|
81
83
|
|
|
82
84
|
addCacheHeaders(context.res)
|
|
83
85
|
return {
|
|
@@ -94,7 +96,7 @@ export async function getServerSideProps(context) {
|
|
|
94
96
|
newskitApiEnvUrl,
|
|
95
97
|
newskitApiXApiKey,
|
|
96
98
|
},
|
|
97
|
-
featureFlags
|
|
99
|
+
featureFlags /* cra-effected */,
|
|
98
100
|
},
|
|
99
101
|
}
|
|
100
102
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import { getHost } from '@newskit-render/shared-components'
|
|
9
9
|
import { Block, Cell, TitleBar } from 'newskit'
|
|
10
10
|
import { UserData } from '@newskit-render/my-account'
|
|
11
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
11
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
12
12
|
import { fetchUser } from '../../../helpers/getUser'
|
|
13
13
|
import { getAccountQueryUrl } from '../../../constants'
|
|
14
14
|
import { addCacheHeaders } from '../../../helpers/addCacheHeaders'
|
|
@@ -16,7 +16,7 @@ import Layout from '../../../components/layout'
|
|
|
16
16
|
import {
|
|
17
17
|
newskitApiEnvUrl,
|
|
18
18
|
newskitApiXApiKey,
|
|
19
|
-
optimizelysdkKey
|
|
19
|
+
optimizelysdkKey /* cra-effected */,
|
|
20
20
|
} from '../../../config'
|
|
21
21
|
|
|
22
22
|
export type RelatedArticles = {
|
|
@@ -79,7 +79,9 @@ export async function getServerSideProps(context) {
|
|
|
79
79
|
const [user] = await Promise.all([
|
|
80
80
|
await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
|
|
81
81
|
])
|
|
82
|
-
|
|
82
|
+
/* start cra-effected */
|
|
83
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
84
|
+
/* end cra-effected */
|
|
83
85
|
|
|
84
86
|
addCacheHeaders(context.res)
|
|
85
87
|
|
|
@@ -92,7 +94,7 @@ export async function getServerSideProps(context) {
|
|
|
92
94
|
newskitApiEnvUrl,
|
|
93
95
|
newskitApiXApiKey,
|
|
94
96
|
},
|
|
95
|
-
featureFlags
|
|
97
|
+
featureFlags /* cra-effected */,
|
|
96
98
|
},
|
|
97
99
|
}
|
|
98
100
|
}
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
ClientTypes,
|
|
6
6
|
} from '@newskit-render/api'
|
|
7
7
|
import { getHost } from '@newskit-render/shared-components'
|
|
8
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
9
|
-
import { optimizelysdkKey } from '../../config'
|
|
8
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
9
|
+
import { optimizelysdkKey } from '../../config' /* cra-effected */
|
|
10
10
|
import { GET_PAGE } from '../../queries'
|
|
11
11
|
import SectionPage from '../../components/section'
|
|
12
12
|
import { fetchUser } from '../../helpers/getUser'
|
|
@@ -46,7 +46,9 @@ export async function getServerSideProps(context) {
|
|
|
46
46
|
notFound: true,
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
/* start cra-effected */
|
|
50
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
51
|
+
/* end cra-effected */
|
|
50
52
|
|
|
51
53
|
addCacheHeaders(context.res)
|
|
52
54
|
return {
|
|
@@ -55,7 +57,7 @@ export async function getServerSideProps(context) {
|
|
|
55
57
|
isIndexPage: true,
|
|
56
58
|
showAds: true,
|
|
57
59
|
user,
|
|
58
|
-
featureFlags
|
|
60
|
+
featureFlags /* cra-effected */,
|
|
59
61
|
},
|
|
60
62
|
}
|
|
61
63
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { Cancellation, getProviderProps } from '@newskit-render/my-account'
|
|
3
3
|
import newrelic from 'newrelic'
|
|
4
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
5
|
-
import { optimizelysdkKey } from '../../../config'
|
|
4
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
import { optimizelysdkKey } from '../../../config' /* cra-effected */
|
|
6
6
|
import validation from '../../../validation'
|
|
7
7
|
|
|
8
8
|
const AccountCancellation = (props) => (
|
|
@@ -13,9 +13,11 @@ export default AccountCancellation
|
|
|
13
13
|
|
|
14
14
|
export const getServerSideProps = async (context) => {
|
|
15
15
|
newrelic.setTransactionName('Account: Cancellation')
|
|
16
|
-
|
|
16
|
+
/* start cra-effected */
|
|
17
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
18
|
+
/* end cra-effected */
|
|
17
19
|
return getProviderProps(
|
|
18
20
|
{ ...context, provider: 'Cancellation' },
|
|
19
|
-
{ featureFlags }
|
|
21
|
+
{ featureFlags } /* cra-effected */
|
|
20
22
|
)
|
|
21
23
|
}
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
NotFound,
|
|
7
7
|
editComponentMap,
|
|
8
8
|
} from '@newskit-render/my-account'
|
|
9
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
10
|
-
import { optimizelysdkKey } from '../../../config'
|
|
9
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
10
|
+
import { optimizelysdkKey } from '../../../config' /* cra-effected */
|
|
11
11
|
import validation from '../../../validation'
|
|
12
12
|
|
|
13
13
|
const AccountEditField = (props) => {
|
|
@@ -36,9 +36,11 @@ export const getServerSideProps = async (context) => {
|
|
|
36
36
|
// Logging the error for being captured by New Relic
|
|
37
37
|
console.error(`An error ${context.res.statusCode} occurred on server`)
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
/* start cra-effected */
|
|
40
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
41
|
+
/* end cra-effected */
|
|
40
42
|
return getProviderProps(
|
|
41
43
|
{ ...context, provider: 'EditField' },
|
|
42
|
-
{ featureFlags }
|
|
44
|
+
{ featureFlags } /* cra-effected */
|
|
43
45
|
)
|
|
44
46
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { getProviderProps, HolidayStop } from '@newskit-render/my-account'
|
|
3
3
|
import newrelic from 'newrelic'
|
|
4
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
5
|
-
import { optimizelysdkKey } from '../../../config'
|
|
4
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
import { optimizelysdkKey } from '../../../config' /* cra-effected */
|
|
6
6
|
|
|
7
7
|
const AccountHolidayStop = (props) => <HolidayStop {...props} />
|
|
8
8
|
|
|
@@ -10,9 +10,11 @@ export default AccountHolidayStop
|
|
|
10
10
|
|
|
11
11
|
export const getServerSideProps = async (context) => {
|
|
12
12
|
newrelic.setTransactionName('Account: Book a Holiday Stop')
|
|
13
|
-
|
|
13
|
+
/* start cra-effected */
|
|
14
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
15
|
+
/* end cra-effected */
|
|
14
16
|
return getProviderProps(
|
|
15
17
|
{ ...context, provider: 'HolidayStop' },
|
|
16
|
-
{ featureFlags }
|
|
18
|
+
{ featureFlags } /* cra-effected */
|
|
17
19
|
)
|
|
18
20
|
}
|
package/pages/account/index.tsx
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import newrelic from 'newrelic'
|
|
3
3
|
import { PersonalDetails, getProviderProps } from '@newskit-render/my-account'
|
|
4
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
5
|
-
import { optimizelysdkKey } from '../../config'
|
|
4
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
import { optimizelysdkKey } from '../../config' /* cra-effected */
|
|
6
|
+
import { AccountDropdown } from '../../components/AccountDropdown' /* cra-disabled */
|
|
6
7
|
|
|
7
|
-
const AccountPersonalDetails = (props) =>
|
|
8
|
+
const AccountPersonalDetails = (props) => (
|
|
9
|
+
<>
|
|
10
|
+
{
|
|
11
|
+
/* start cra-disabled */
|
|
12
|
+
<AccountDropdown />
|
|
13
|
+
/* end cra-disabled */
|
|
14
|
+
}
|
|
15
|
+
<PersonalDetails {...props} />
|
|
16
|
+
</>
|
|
17
|
+
)
|
|
8
18
|
|
|
9
19
|
export default AccountPersonalDetails
|
|
10
20
|
|
|
11
21
|
export const getServerSideProps = async (context) => {
|
|
12
|
-
|
|
22
|
+
/* start cra-effected */
|
|
23
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
24
|
+
/* end cra-effected */
|
|
13
25
|
newrelic.setTransactionName('Account: Personal details')
|
|
14
26
|
return getProviderProps(
|
|
15
27
|
{ ...context, provider: 'PersonalDetails' },
|
|
16
|
-
{ featureFlags }
|
|
28
|
+
{ featureFlags } /* cra-effected */
|
|
17
29
|
)
|
|
18
30
|
}
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
getProviderProps,
|
|
5
5
|
} from '@newskit-render/my-account'
|
|
6
6
|
import newrelic from 'newrelic'
|
|
7
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
8
|
-
import { optimizelysdkKey } from '../../../config'
|
|
7
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
8
|
+
import { optimizelysdkKey } from '../../../config' /* cra-effected */
|
|
9
9
|
|
|
10
10
|
const AccountNewslettersAndAlerts = (props) => (
|
|
11
11
|
<NewslettersAndAlerts {...props} />
|
|
@@ -15,9 +15,11 @@ export default AccountNewslettersAndAlerts
|
|
|
15
15
|
|
|
16
16
|
export const getServerSideProps = async (context) => {
|
|
17
17
|
newrelic.setTransactionName('Account: Newsletters and Alerts')
|
|
18
|
-
|
|
18
|
+
/* start cra-effected */
|
|
19
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
20
|
+
/* end cra-effected */
|
|
19
21
|
return getProviderProps(
|
|
20
22
|
{ ...context, provider: 'NewslettersAndAlerts' },
|
|
21
|
-
{ featureFlags }
|
|
23
|
+
{ featureFlags } /* cra-effected */
|
|
22
24
|
)
|
|
23
25
|
}
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
getProviderProps,
|
|
6
6
|
PaymentProvider,
|
|
7
7
|
} from '@newskit-render/my-account'
|
|
8
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
9
|
-
import { optimizelysdkKey } from '../../../config'
|
|
8
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
9
|
+
import { optimizelysdkKey } from '../../../config' /* cra-effected */
|
|
10
10
|
|
|
11
11
|
const AccountCancellation = (props) => <Payment {...props} />
|
|
12
12
|
|
|
@@ -14,7 +14,9 @@ export default AccountCancellation
|
|
|
14
14
|
|
|
15
15
|
export const getServerSideProps = async (context) => {
|
|
16
16
|
newrelic.setTransactionName('Edit Payment method')
|
|
17
|
-
|
|
17
|
+
/* start cra-effected */
|
|
18
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
19
|
+
/* end cra-effected */
|
|
18
20
|
|
|
19
21
|
return getProviderProps(
|
|
20
22
|
{
|
|
@@ -22,6 +24,6 @@ export const getServerSideProps = async (context) => {
|
|
|
22
24
|
provider: 'Payment',
|
|
23
25
|
paymentProvider: PaymentProvider.Zuora,
|
|
24
26
|
},
|
|
25
|
-
{ featureFlags }
|
|
27
|
+
{ featureFlags } /* cra-effected */
|
|
26
28
|
)
|
|
27
29
|
}
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
getProviderProps,
|
|
5
5
|
} from '@newskit-render/my-account'
|
|
6
6
|
import newrelic from 'newrelic'
|
|
7
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
8
|
-
import { optimizelysdkKey } from '../../../config'
|
|
7
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
8
|
+
import { optimizelysdkKey } from '../../../config' /* cra-effected */
|
|
9
9
|
|
|
10
10
|
const AccountSubscriptionAndBilling = (props) => (
|
|
11
11
|
<SubscriptionAndBilling {...props} />
|
|
@@ -15,13 +15,15 @@ export default AccountSubscriptionAndBilling
|
|
|
15
15
|
|
|
16
16
|
export const getServerSideProps = async (context) => {
|
|
17
17
|
newrelic.setTransactionName('Account: Subscription and Billing')
|
|
18
|
-
|
|
18
|
+
/* start cra-effected */
|
|
19
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
20
|
+
/* end cra-effected */
|
|
19
21
|
const result = await getProviderProps(
|
|
20
22
|
{
|
|
21
23
|
...context,
|
|
22
24
|
provider: 'SubscriptionAndBilling',
|
|
23
25
|
},
|
|
24
|
-
{ featureFlags }
|
|
26
|
+
{ featureFlags } /* cra-effected */
|
|
25
27
|
)
|
|
26
28
|
|
|
27
29
|
return result
|
|
@@ -2,6 +2,7 @@ import { fetchSessionCookie } from '@newskit-render/api'
|
|
|
2
2
|
import { safeJsonParse } from '@newskit-render/shared-components'
|
|
3
3
|
import { NextApiRequest, NextApiResponse } from 'next'
|
|
4
4
|
import { acsSessionUrlTimes, acsSessionUrlSun } from '../../../../config'
|
|
5
|
+
import { getAccounts } from '../../../../components/AccountDropdown'
|
|
5
6
|
|
|
6
7
|
const tenantMap = {
|
|
7
8
|
SUN: acsSessionUrlSun,
|
|
@@ -9,14 +10,24 @@ const tenantMap = {
|
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
if (process.env.TM_ACCOUNTS_PASSWORD && process.env.NGN_ACCOUNTS_PASSWORD) {
|
|
14
|
+
const options = getAccounts(
|
|
15
|
+
process.env.NGN_ACCOUNTS_PASSWORD,
|
|
16
|
+
process.env.TM_ACCOUNTS_PASSWORD
|
|
17
|
+
)
|
|
18
|
+
const { option } = safeJsonParse(req.body)
|
|
19
|
+
const { username, password, tenant } = options[option]
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
const tenantUrl = tenantMap[tenant]
|
|
22
|
+
|
|
23
|
+
const result = await fetchSessionCookie({
|
|
24
|
+
username,
|
|
25
|
+
password,
|
|
26
|
+
tenantUrl,
|
|
27
|
+
})
|
|
28
|
+
res.send(result)
|
|
29
|
+
} else {
|
|
30
|
+
res.end()
|
|
31
|
+
}
|
|
21
32
|
}
|
|
22
33
|
export default handler
|
package/pages/index.tsx
CHANGED
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
getAcsCookie,
|
|
5
5
|
ClientTypes,
|
|
6
6
|
} from '@newskit-render/api'
|
|
7
|
-
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags'
|
|
7
|
+
import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
|
|
8
8
|
import { getHost } from '@newskit-render/shared-components'
|
|
9
|
-
import { optimizelysdkKey } from '../config'
|
|
9
|
+
import { optimizelysdkKey } from '../config' /* cra-effected */
|
|
10
10
|
import { GET_PAGE } from '../queries'
|
|
11
11
|
import SectionPage from '../components/section'
|
|
12
12
|
import { fetchUser } from '../helpers/getUser'
|
|
@@ -34,7 +34,9 @@ export async function getServerSideProps(context) {
|
|
|
34
34
|
}),
|
|
35
35
|
await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
|
|
36
36
|
])
|
|
37
|
-
|
|
37
|
+
/* start cra-effected */
|
|
38
|
+
const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
|
|
39
|
+
/* end cra-effected */
|
|
38
40
|
|
|
39
41
|
addCacheHeaders(context.res)
|
|
40
42
|
const { page } = data
|
|
@@ -43,7 +45,7 @@ export async function getServerSideProps(context) {
|
|
|
43
45
|
page,
|
|
44
46
|
showAds: true,
|
|
45
47
|
user,
|
|
46
|
-
featureFlags
|
|
48
|
+
featureFlags /* cra-effected */,
|
|
47
49
|
},
|
|
48
50
|
}
|
|
49
51
|
}
|