Skip to content

Commit 516c279

Browse files
Merge pull request #1045 from daniel-ac-martin/react-helmet-async-v2
BREAKING: Update react-helmet-async to v2
2 parents 5086f7c + 99cb418 commit 516c279

File tree

10 files changed

+58
-50
lines changed

10 files changed

+58
-50
lines changed

apps/govuk-docs/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"plop": "3.1.2",
5757
"react": "16.14.0",
5858
"react-dom": "16.14.0",
59-
"react-helmet-async": "1.3.0",
59+
"react-helmet-async": "2.0.5",
6060
"react-router": "5.3.4",
6161
"react-router-dom": "5.3.4",
6262
"serverless": "3.39.0",

apps/govuk-template/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"plop": "3.1.2",
6161
"react": "16.14.0",
6262
"react-dom": "16.14.0",
63-
"react-helmet-async": "1.3.0",
63+
"react-helmet-async": "2.0.5",
6464
"react-router": "5.3.4",
6565
"react-router-dom": "5.3.4",
6666
"serverless": "3.39.0",

components/page/src/GovUKPage.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { FC, createElement as h } from 'react';
2-
import { Helmet } from 'react-helmet-async';
2+
import reactHelmetDefault, * as reactHelmetNamed from 'react-helmet-async';
33
import { Page, PageProps } from './Page';
44

55
import favicon from 'govuk-frontend/govuk/assets/images/favicon.ico';
@@ -12,6 +12,9 @@ import ogImage from 'govuk-frontend/govuk/assets/images/govuk-opengraph-image.pn
1212

1313
import '../assets/GovUKPage.scss';
1414

15+
const reactHelmet = reactHelmetDefault || reactHelmetNamed;
16+
const { Helmet } = reactHelmet;
17+
1518
export type GovUKPageProps = Omit<PageProps, 'govUK'>;
1619

1720
export const GovUKPage: FC<GovUKPageProps> = ({ children, classModifiers, ...props }) => (

components/page/src/NotGovUKPage.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { FC, createElement as h } from 'react';
2-
import { Helmet } from 'react-helmet-async';
2+
import reactHelmetDefault, * as reactHelmetNamed from 'react-helmet-async';
33
import { Page, PageProps } from './Page';
44

55
import favicon from '../assets/coat-favicon.ico';
@@ -11,6 +11,9 @@ import ogImage from '../assets/coat-opengraph-image.png';
1111

1212
import '../assets/NotGovUKPage.scss';
1313

14+
const reactHelmet = reactHelmetDefault || reactHelmetNamed;
15+
const { Helmet } = reactHelmet;
16+
1417
export type NotGovUKPageProps = Omit<PageProps, 'govUK'>;
1518

1619
export const NotGovUKPage: FC<NotGovUKPageProps> = ({ children, classModifiers, ...props }) => (

components/page/src/Page.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { FC, Fragment, HTMLProps, ReactNode, createElement as h } from 'react';
2-
import { Helmet } from 'react-helmet-async';
2+
import reactHelmetDefault, * as reactHelmetNamed from 'react-helmet-async';
33
import { BackLink } from '@not-govuk/back-link';
44
import { Breadcrumb, Breadcrumbs } from '@not-govuk/breadcrumbs';
55
import { StandardProps, classBuilder } from '@not-govuk/component-helpers';
@@ -12,6 +12,9 @@ import { WidthContainer } from '@not-govuk/width-container';
1212

1313
import '../assets/Page.scss';
1414

15+
const reactHelmet = reactHelmetDefault || reactHelmetNamed;
16+
const { Helmet } = reactHelmet;
17+
1518
export type PageProps = (
1619
StandardProps &
1720
HTMLProps<HTMLDivElement> &

lib/app-composer/src/index.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { GraphQLSchema } from 'graphql';
22
import { ApolloClient, ApolloProvider, InMemoryCache, createHttpLink } from '@apollo/client';
33
import { SchemaLink } from '@apollo/client/link/schema';
44
import { ComponentType, Fragment, ReactNode, Suspense, createElement as h, lazy } from 'react';
5-
import { Helmet, HelmetProvider, FilledContext } from 'react-helmet-async';
5+
import { Helmet, HelmetProvider, HelmetServerState } from 'react-helmet-async';
66
import { StaticRouter, StaticRouterProps, Switch } from 'react-router';
77
import { BrowserRouter, BrowserRouterProps } from 'react-router-dom';
88
import { Route, RouteComponentProps, withRouter } from '@not-govuk/route-utils';
@@ -54,6 +54,10 @@ type ServerError = {
5454
message: string
5555
};
5656

57+
export type HelmetDataContext = {
58+
helmet: HelmetServerState
59+
}
60+
5761
export type ApplicationPropsSSR = ApplicationPropsCommon & {
5862
pages: PageInfoSSR[]
5963
};
@@ -63,7 +67,7 @@ export type ApplicationProps = ApplicationPropsCSR | ApplicationPropsSSR;
6367
type ApplicationCSR = ComponentType<ApplicationPropsCSR>;
6468
type ApplicationSSR = ComponentType<ApplicationPropsSSR> & {
6569
extractDataCache: () => object
66-
helmetContext: FilledContext
70+
helmetContext: HelmetDataContext
6771
};
6872
export type Application = ComponentType<ApplicationProps>;
6973

@@ -304,7 +308,7 @@ export const compose: Compose = options => {
304308

305309
return Object.assign(App, {
306310
extractDataCache,
307-
helmetContext: helmetContext as FilledContext
311+
helmetContext: helmetContext as HelmetDataContext
308312
});
309313
};
310314

lib/component-test-helpers/src/index.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { FC, ReactElement, ReactNode, createElement as h } from 'react';
2-
import { HelmetProvider } from 'react-helmet-async';
2+
import reactHelmetDefault, * as reactHelmetNamed from 'react-helmet-async';
33
import { MemoryRouter } from 'react-router';
44
import { render as _render, RenderOptions } from '@testing-library/react';
55
import userEventDefault from '@testing-library/user-event';
66

77
import '@testing-library/jest-dom';
88

9+
const reactHelmet = reactHelmetDefault || reactHelmetNamed;
10+
const { HelmetProvider } = reactHelmet;
11+
912
const Providers: FC<{ children?: ReactNode, routerProps?: object }> = ({
1013
children,
1114
routerProps

lib/server-renderer/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"@types/react": "16.14.60",
3333
"@types/react-dom": "16.9.24",
3434
"graphql": "15.9.0",
35-
"react-helmet-async": "1.3.0",
35+
"react-helmet-async": "2.0.5",
3636
"typescript": "4.9.5"
3737
}
3838
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
"process": "^0.11.10",
8383
"react": "16.14.0",
8484
"react-dom": "16.14.0",
85-
"react-helmet-async": "1.3.0",
85+
"react-helmet-async": "2.0.5",
8686
"react-router": "5.3.4",
8787
"react-router-dom": "5.3.4",
8888
"ts-jest": "29.2.3",

pnpm-lock.yaml

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

0 commit comments

Comments
 (0)