@newskit-render/core 2.9.0 → 2.10.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 CHANGED
@@ -3,6 +3,38 @@
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
+ # [2.10.0](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@2.10.0-alpha.0...@newskit-render/core@2.10.0) (2022-10-26)
7
+
8
+ **Note:** Version bump only for package @newskit-render/core
9
+
10
+
11
+
12
+
13
+
14
+ ## [2.9.3](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@2.9.3-alpha.0...@newskit-render/core@2.9.3) (2022-10-20)
15
+
16
+ **Note:** Version bump only for package @newskit-render/core
17
+
18
+
19
+
20
+
21
+
22
+ ## [2.9.2](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@2.9.2-alpha.0...@newskit-render/core@2.9.2) (2022-10-20)
23
+
24
+ **Note:** Version bump only for package @newskit-render/core
25
+
26
+
27
+
28
+
29
+
30
+ ## [2.9.1](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@2.9.1-alpha.0...@newskit-render/core@2.9.1) (2022-10-20)
31
+
32
+ **Note:** Version bump only for package @newskit-render/core
33
+
34
+
35
+
36
+
37
+
6
38
  # [2.9.0](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@2.9.0-alpha.0...@newskit-render/core@2.9.0) (2022-10-17)
7
39
 
8
40
  **Note:** Version bump only for package @newskit-render/core
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @newskit-render/core
2
2
 
3
- А template website built using Next.js framework.
3
+ А template website built using Next.js framework
4
4
 
5
5
  This package is used by [@newskit-render/create-render-app](https://www.npmjs.com/package/@newskit-render/create-render-app) as a template structure to scaffold the newly created project which the users of @newskit-render/create-render-app can use and modify for their purposes.
6
6
 
@@ -258,3 +258,23 @@ const AppContextProvider = ({ children }: { children: JSX.Element }) => {
258
258
 
259
259
  export { AppContextProvider, AppContext }
260
260
  ```
261
+
262
+ ### create-render-app effected comments
263
+
264
+ You may see some lines of code that have comments next to them:
265
+
266
+ ```
267
+ code here // create-render-app effected
268
+ ```
269
+
270
+ Or around them:
271
+
272
+ ```
273
+ // start create-render-app effected
274
+ code here
275
+ // end create-render-app effected
276
+ ```
277
+
278
+ This comment is to denote 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).
279
+
280
+ If you our touching / modifiying code with these comments you need to be aware that you may affect the successful running of the [@newskit-render/create-render-app package](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/create-render-app).
@@ -96,6 +96,14 @@ jest.mock('newrelic', () => {
96
96
  }
97
97
  })
98
98
 
99
+ // start create-render-app effected
100
+ jest.mock('@newskit-render/feature-flags', () => ({
101
+ initAndGetFeatureFlag: jest
102
+ .fn()
103
+ .mockImplementation(() => Promise.resolve({ test: 'test' })),
104
+ }))
105
+ // end create-render-app effected
106
+
99
107
  jest.mock('@newskit-render/api', () => ({
100
108
  ClientTypes: { nkapi: 'nkapi' },
101
109
  createApolloClient: jest.fn().mockImplementation(() => {
@@ -133,7 +141,14 @@ describe('Article', () => {
133
141
  req: { headers: { cookie: 'some-cookie', host: 'hostname' } },
134
142
  res: { setHeader: setHeaderMock },
135
143
  })
136
- expect(response).toEqual({ props: { ...props, showAds: true, user } })
144
+ expect(response).toEqual({
145
+ props: {
146
+ ...props,
147
+ showAds: true,
148
+ user,
149
+ featureFlags: { test: 'test' }, // create-render-app effected
150
+ },
151
+ })
137
152
  expect(setHeaderMock).toHaveBeenCalledWith(
138
153
  'Cache-Control',
139
154
  'public, s-maxage=10, stale-while-revalidate=59'
@@ -25,6 +25,14 @@ jest.mock('cross-fetch', () =>
25
25
  )
26
26
  )
27
27
 
28
+ // start create-render-app effected
29
+ jest.mock('@newskit-render/feature-flags', () => ({
30
+ initAndGetFeatureFlag: jest
31
+ .fn()
32
+ .mockImplementation(() => Promise.resolve({ test: 'test' })),
33
+ }))
34
+ // end create-render-app effected
35
+
28
36
  jest.mock('@newskit-render/api', () => ({
29
37
  ClientTypes: { nkapi: 'nkapi' },
30
38
  createApolloClient: jest.fn().mockImplementation(() => {
@@ -82,6 +90,7 @@ describe('getServerSideProps', () => {
82
90
  },
83
91
  showAds: true,
84
92
  user,
93
+ featureFlags: { test: 'test' }, // create-render-app effected
85
94
  },
86
95
  })
87
96
  )
@@ -34,6 +34,14 @@ jest.mock('cross-fetch', () =>
34
34
  )
35
35
  )
36
36
 
37
+ // start create-render-app effected
38
+ jest.mock('@newskit-render/feature-flags', () => ({
39
+ initAndGetFeatureFlag: jest
40
+ .fn()
41
+ .mockImplementation(() => Promise.resolve({ test: 'test' })),
42
+ }))
43
+ // end create-render-app effected
44
+
37
45
  jest.mock('@newskit-render/api', () => ({
38
46
  ClientTypes: { nkapi: 'nkapi' },
39
47
  getAcsCookie: jest.fn().mockReturnValue({ Cookie: 'something' }),
@@ -61,7 +69,14 @@ describe('Article', () => {
61
69
  req: { headers: { cookie: 'some-cookie' } },
62
70
  res: { setHeader: setHeaderMock },
63
71
  })
64
- expect(response).toEqual({ props: { ...props, showAds: true, user } })
72
+ expect(response).toEqual({
73
+ props: {
74
+ ...props,
75
+ showAds: true,
76
+ user,
77
+ featureFlags: { test: 'test' }, // create-render-app effected
78
+ },
79
+ })
65
80
  expect(setHeaderMock).toHaveBeenCalledWith(
66
81
  'Cache-Control',
67
82
  'public, s-maxage=10, stale-while-revalidate=59'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newskit-render/core",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "Newskit Render - Core package",
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
@@ -33,24 +33,24 @@
33
33
  "analyze": "ANALYZE=true next build"
34
34
  },
35
35
  "dependencies": {
36
- "@apollo/client": "3.7.0",
36
+ "@apollo/client": "3.4.16",
37
37
  "@emotion-icons/material": "3.14.0",
38
38
  "@emotion-icons/material-outlined": "3.14.0",
39
39
  "@emotion/react": "11.10.4",
40
40
  "@emotion/styled": "11.10.4",
41
- "@newskit-render/api": "^1.2.0",
42
- "@newskit-render/auth": "^1.1.0",
43
- "@newskit-render/checkout": "^1.3.0",
44
- "@newskit-render/feature-flags": "^1.1.0",
45
- "@newskit-render/feed": "^1.1.0",
46
- "@newskit-render/my-account": "^3.6.0",
47
- "@newskit-render/shared-components": "^1.6.0",
48
- "@newskit-render/standalone-components": "^1.5.0",
49
- "@newskit-render/validation": "^1.2.0",
41
+ "@newskit-render/api": "^1.2.1",
42
+ "@newskit-render/auth": "^1.1.1",
43
+ "@newskit-render/checkout": "^1.3.2",
44
+ "@newskit-render/feature-flags": "^1.2.0",
45
+ "@newskit-render/feed": "^1.1.1",
46
+ "@newskit-render/my-account": "^3.7.0",
47
+ "@newskit-render/shared-components": "^1.6.1",
48
+ "@newskit-render/standalone-components": "^1.5.1",
49
+ "@newskit-render/validation": "^1.2.1",
50
50
  "cross-fetch": "3.1.5",
51
51
  "graphql": "15.6.0",
52
52
  "lodash.get": "4.4.2",
53
- "newrelic": "9.2.0",
53
+ "newrelic": "7.1.0",
54
54
  "newskit": "6.1.0",
55
55
  "next": "12.3.0",
56
56
  "react": "18.2.0",
@@ -9,6 +9,7 @@ import {
9
9
  import { UserData } from '@newskit-render/my-account'
10
10
  import { Article } from '@newskit-render/standalone-components'
11
11
  import { getHost } from '@newskit-render/shared-components'
12
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
12
13
  import { GET_UNIVERSAL_ARTICLE } from '../../../queries'
13
14
  import ArticlePage, { UniversalArticle } from '../../../components/article'
14
15
  import { fetchUser } from '../../../helpers/getUser'
@@ -17,6 +18,7 @@ import { addCacheHeaders } from '../../../helpers/addCacheHeaders'
17
18
  import {
18
19
  twitterUsername as configTwitterUsername,
19
20
  gscId as configGscId,
21
+ optimizelysdkKey, // create-render-app effected
20
22
  } from '../../../config'
21
23
  import { fetcher } from '../../../helpers/getRecommendations'
22
24
 
@@ -89,6 +91,7 @@ export async function getServerSideProps(context) {
89
91
  }),
90
92
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
91
93
  ])
94
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
92
95
 
93
96
  addCacheHeaders(context.res)
94
97
  return {
@@ -101,6 +104,7 @@ export async function getServerSideProps(context) {
101
104
  showAds: true,
102
105
  user,
103
106
  articleId,
107
+ featureFlags, // create-render-app effected
104
108
  },
105
109
  }
106
110
  }
@@ -6,6 +6,8 @@ import { Article } from '@newskit-render/standalone-components'
6
6
  import { getHost } from '@newskit-render/shared-components'
7
7
  import { Block, Cell, TitleBar } from 'newskit'
8
8
  import { UserData } from '@newskit-render/my-account'
9
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
10
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
9
11
  import { fetchUser } from '../../../helpers/getUser'
10
12
  import { getAccountQueryUrl } from '../../../constants'
11
13
  import { addCacheHeaders } from '../../../helpers/addCacheHeaders'
@@ -83,6 +85,7 @@ export async function getServerSideProps(context) {
83
85
  const [user] = await Promise.all([
84
86
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
85
87
  ])
88
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
86
89
 
87
90
  addCacheHeaders(context.res)
88
91
 
@@ -91,6 +94,7 @@ export async function getServerSideProps(context) {
91
94
  showAds: true,
92
95
  user,
93
96
  articleId,
97
+ featureFlags, // create-render-app effected
94
98
  },
95
99
  }
96
100
  }
@@ -5,6 +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' // create-render-app effected
9
+ import { optimizelysdkKey } from '../../config' // create-render-app effected
8
10
  import { GET_PAGE } from '../../queries'
9
11
  import SectionPage from '../../components/section'
10
12
  import { fetchUser } from '../../helpers/getUser'
@@ -30,7 +32,10 @@ export async function getServerSideProps(context) {
30
32
  const [{ data: pageData }, pageUser] = await Promise.all([
31
33
  apolloClient.query({
32
34
  query: GET_PAGE,
33
- variables: { channel: section, publisher: 'DEMO' },
35
+ variables: {
36
+ channel: section,
37
+ publisher: 'DEMO',
38
+ },
34
39
  }),
35
40
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
36
41
  ])
@@ -41,6 +46,7 @@ export async function getServerSideProps(context) {
41
46
  notFound: true,
42
47
  }
43
48
  }
49
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
44
50
 
45
51
  addCacheHeaders(context.res)
46
52
  return {
@@ -49,6 +55,7 @@ export async function getServerSideProps(context) {
49
55
  isIndexPage: true,
50
56
  showAds: true,
51
57
  user,
58
+ featureFlags, // create-render-app effected
52
59
  },
53
60
  }
54
61
  }
package/pages/_app.tsx CHANGED
@@ -2,17 +2,10 @@ import React from 'react'
2
2
  import { AppContext as AppContextType, AppProps } from 'next/app'
3
3
  import Head from 'next/head'
4
4
  import { ThemeProvider, Global, styled } from 'newskit'
5
- import {
6
- getFeatureFlags,
7
- FeatureFlagsContextProvider,
8
- FeatureFlag,
9
- createFeatureFlagsInstance,
10
- } from '@newskit-render/feature-flags'
11
5
  import { Publisher } from '@newskit-render/api'
12
6
  import { AppContextProvider, AppContext } from '../context/app-context'
13
7
  import { logger } from '../helpers/logger'
14
8
 
15
- import { optimizelysdkKey } from '../config'
16
9
  import { InstrumentationContextProvider } from '../app-context/InstrumentationContextProvider'
17
10
  import { getTenant } from '../helpers/multiTenancy'
18
11
  import { GlobalStyling } from '../css'
@@ -24,23 +17,16 @@ if (!process.browser) {
24
17
  logger()
25
18
  }
26
19
 
27
- if (optimizelysdkKey) {
28
- createFeatureFlagsInstance({
29
- optimizelyConfig: { sdkKey: optimizelysdkKey },
30
- })
31
- }
32
-
33
20
  const PageContainer = styled.div`
34
21
  position: relative;
35
22
  min-height: 100vh;
36
23
  `
37
24
 
38
25
  interface MyAppProps extends AppProps {
39
- featureFlags?: FeatureFlag
40
26
  tenant: Publisher
41
27
  }
42
28
 
43
- function MyApp({ Component, pageProps, featureFlags, tenant }: MyAppProps) {
29
+ function MyApp({ Component, pageProps, tenant }: MyAppProps) {
44
30
  return (
45
31
  <MultiTenancyProvider tenant={tenant}>
46
32
  <AppContextProvider>
@@ -56,18 +42,16 @@ function MyApp({ Component, pageProps, featureFlags, tenant }: MyAppProps) {
56
42
  />
57
43
  </Head>
58
44
  <InstrumentationContextProvider>
59
- <FeatureFlagsContextProvider context={featureFlags}>
60
- <AppContext.Consumer>
61
- {({ theme }) => (
62
- <ThemeProvider theme={theme}>
63
- <Global styles={GlobalStyling} />
64
- <PageContainer>
65
- <Component {...pageProps} />
66
- </PageContainer>
67
- </ThemeProvider>
68
- )}
69
- </AppContext.Consumer>
70
- </FeatureFlagsContextProvider>
45
+ <AppContext.Consumer>
46
+ {({ theme }) => (
47
+ <ThemeProvider theme={theme}>
48
+ <Global styles={GlobalStyling} />
49
+ <PageContainer>
50
+ <Component {...pageProps} />
51
+ </PageContainer>
52
+ </ThemeProvider>
53
+ )}
54
+ </AppContext.Consumer>
71
55
  </InstrumentationContextProvider>
72
56
  </>
73
57
  </AppContextProvider>
@@ -82,11 +66,10 @@ MyApp.getInitialProps = async ({ Component, ctx }: AppContextType) => {
82
66
  pageProps = await Component.getInitialProps(ctx)
83
67
  }
84
68
 
85
- if (optimizelysdkKey) {
86
- const featureFlags = await getFeatureFlags()
87
- return { featureFlags, pageProps, tenant }
69
+ return {
70
+ pageProps,
71
+ tenant,
88
72
  }
89
- return { pageProps, tenant }
90
73
  }
91
74
 
92
75
  export default MyApp
@@ -53,7 +53,7 @@ export default class MyDocument extends Document {
53
53
  ? this.props.__NEXT_DATA__.props.pageProps.showAds
54
54
  : false
55
55
 
56
- const { featureFlags } = this.props.__NEXT_DATA__.props
56
+ const { featureFlags } = this.props.__NEXT_DATA__.props.pageProps
57
57
  return (
58
58
  <Html lang="en">
59
59
  <Head>
@@ -75,7 +75,9 @@ export default class MyDocument extends Document {
75
75
  featureFlags &&
76
76
  featureFlags.experimentation_web_flag && (
77
77
  <ExperimentationWeb
78
- optimizelyWebConfig={{ scriptCdn: experimentationWeb }}
78
+ optimizelyWebConfig={{
79
+ scriptCdn: experimentationWeb,
80
+ }}
79
81
  reactHelmet={Helmet}
80
82
  />
81
83
  )}
@@ -1,6 +1,8 @@
1
1
  import React, { useContext } 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' // create-render-app effected
5
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
4
6
  import { AppContext } from '../../../context/app-context'
5
7
  import { createThemeDropdownObject } from '../../../helpers/createThemeDropdownObject'
6
8
  import validation from '../../../validation'
@@ -22,5 +24,9 @@ export default AccountCancellation
22
24
 
23
25
  export const getServerSideProps = async (context) => {
24
26
  newrelic.setTransactionName('Account: Cancellation')
25
- return getProviderProps({ ...context, provider: 'Cancellation' })
27
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
28
+ return getProviderProps(
29
+ { ...context, provider: 'Cancellation' },
30
+ { featureFlags } // create-render-app effected
31
+ )
26
32
  }
@@ -6,6 +6,8 @@ import {
6
6
  NotFound,
7
7
  componentMap,
8
8
  } from '@newskit-render/my-account'
9
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
10
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
9
11
  import validation from '../../../validation'
10
12
  import { AppContext } from '../../../context/app-context'
11
13
  import { createThemeDropdownObject } from '../../../helpers/createThemeDropdownObject'
@@ -43,5 +45,9 @@ export const getServerSideProps = async (context) => {
43
45
  // Logging the error for being captured by New Relic
44
46
  console.error(`An error ${context.res.statusCode} occurred on server`)
45
47
  }
46
- return getProviderProps({ ...context, provider: 'EditField' })
48
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
49
+ return getProviderProps(
50
+ { ...context, provider: 'EditField' },
51
+ { featureFlags } // create-render-app effected
52
+ )
47
53
  }
@@ -1,6 +1,8 @@
1
1
  import { getProviderProps, HolidayStop } from '@newskit-render/my-account'
2
2
  import newrelic from 'newrelic'
3
3
  import React, { useContext } from 'react'
4
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
5
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
4
6
  import { AppContext } from '../../../context/app-context'
5
7
  import { createThemeDropdownObject } from '../../../helpers/createThemeDropdownObject'
6
8
 
@@ -20,5 +22,9 @@ export default AccountHolidayStop
20
22
 
21
23
  export const getServerSideProps = async (context) => {
22
24
  newrelic.setTransactionName('Account: Book a Holiday Stop')
23
- return getProviderProps({ ...context, provider: 'HolidayStop' })
25
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
26
+ return getProviderProps(
27
+ { ...context, provider: 'HolidayStop' },
28
+ { featureFlags } // create-render-app effected
29
+ )
24
30
  }
@@ -1,6 +1,8 @@
1
1
  import newrelic from 'newrelic'
2
2
  import { PersonalDetails, getProviderProps } from '@newskit-render/my-account'
3
3
  import React, { useContext } from 'react'
4
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
5
+ import { optimizelysdkKey } from '../../config' // create-render-app effected
4
6
  import { AppContext } from '../../context/app-context'
5
7
  import { createThemeDropdownObject } from '../../helpers/createThemeDropdownObject'
6
8
 
@@ -19,6 +21,10 @@ const AccountPersonalDetails = (props) => {
19
21
  export default AccountPersonalDetails
20
22
 
21
23
  export const getServerSideProps = async (context) => {
24
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
22
25
  newrelic.setTransactionName('Account: Personal details')
23
- return getProviderProps({ ...context, provider: 'PersonalDetails' })
26
+ return getProviderProps(
27
+ { ...context, provider: 'PersonalDetails' },
28
+ { featureFlags } // create-render-app effected
29
+ )
24
30
  }
@@ -4,6 +4,8 @@ import {
4
4
  } from '@newskit-render/my-account'
5
5
  import newrelic from 'newrelic'
6
6
  import React, { useContext } from 'react'
7
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
8
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
7
9
  import { AppContext } from '../../../context/app-context'
8
10
  import { createThemeDropdownObject } from '../../../helpers/createThemeDropdownObject'
9
11
 
@@ -23,5 +25,9 @@ export default AccountNewslettersAndAlerts
23
25
 
24
26
  export const getServerSideProps = async (context) => {
25
27
  newrelic.setTransactionName('Account: Newsletters and Alerts')
26
- return getProviderProps({ ...context, provider: 'NewslettersAndAlerts' })
28
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
29
+ return getProviderProps(
30
+ { ...context, provider: 'NewslettersAndAlerts' },
31
+ { featureFlags } // create-render-app effected
32
+ )
27
33
  }
@@ -5,6 +5,8 @@ import {
5
5
  PaymentProvider,
6
6
  } from '@newskit-render/my-account'
7
7
  import React, { useContext } from 'react'
8
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
9
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
8
10
  import { AppContext } from '../../../context/app-context'
9
11
  import { createThemeDropdownObject } from '../../../helpers/createThemeDropdownObject'
10
12
 
@@ -24,10 +26,14 @@ export default AccountCancellation
24
26
 
25
27
  export const getServerSideProps = async (context) => {
26
28
  newrelic.setTransactionName('Edit Payment method')
29
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
27
30
 
28
- return getProviderProps({
29
- ...context,
30
- provider: 'Payment',
31
- paymentProvider: PaymentProvider.Zuora,
32
- })
31
+ return getProviderProps(
32
+ {
33
+ ...context,
34
+ provider: 'Payment',
35
+ paymentProvider: PaymentProvider.Zuora,
36
+ },
37
+ { featureFlags } // create-render-app effected
38
+ )
33
39
  }
@@ -4,6 +4,8 @@ import {
4
4
  } from '@newskit-render/my-account'
5
5
  import newrelic from 'newrelic'
6
6
  import React, { useContext } from 'react'
7
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
8
+ import { optimizelysdkKey } from '../../../config' // create-render-app effected
7
9
  import { AppContext } from '../../../context/app-context'
8
10
  import { createThemeDropdownObject } from '../../../helpers/createThemeDropdownObject'
9
11
 
@@ -23,10 +25,14 @@ export default AccountSubscriptionAndBilling
23
25
 
24
26
  export const getServerSideProps = async (context) => {
25
27
  newrelic.setTransactionName('Account: Subscription and Billing')
26
- const result = await getProviderProps({
27
- ...context,
28
- provider: 'SubscriptionAndBilling',
29
- })
28
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
29
+ const result = await getProviderProps(
30
+ {
31
+ ...context,
32
+ provider: 'SubscriptionAndBilling',
33
+ },
34
+ { featureFlags } // create-render-app effected
35
+ )
30
36
 
31
37
  return result
32
38
  }
package/pages/index.tsx CHANGED
@@ -5,6 +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' // create-render-app effected
9
+ import { optimizelysdkKey } from '../config' // create-render-app effected
8
10
  import { GET_PAGE } from '../queries'
9
11
  import SectionPage from '../components/section'
10
12
  import { fetchUser } from '../helpers/getUser'
@@ -24,10 +26,14 @@ export async function getServerSideProps(context) {
24
26
  const [{ data }, user] = await Promise.all([
25
27
  apolloClient.query({
26
28
  query: GET_PAGE,
27
- variables: { channel: 'homepage', publisher: 'DEMO' },
29
+ variables: {
30
+ channel: 'homepage',
31
+ publisher: 'DEMO',
32
+ },
28
33
  }),
29
34
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
30
35
  ])
36
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
31
37
 
32
38
  addCacheHeaders(context.res)
33
39
  const { page } = data
@@ -36,6 +42,7 @@ export async function getServerSideProps(context) {
36
42
  page,
37
43
  showAds: true,
38
44
  user,
45
+ featureFlags, // create-render-app effected
39
46
  },
40
47
  }
41
48
  }
@@ -25,6 +25,7 @@ export default class MyDocument extends Document {
25
25
  render() {
26
26
  const helmet = Helmet.rewind()
27
27
  <% SHOWADS >
28
+ <% SHOWFEATUREFLAGS >
28
29
  return (
29
30
  <Html lang="en">
30
31
  <Head>