From 94d7f3d3cef3ec9ba8ea28d9238c08ff9ba4aef8 Mon Sep 17 00:00:00 2001 From: Jeff Avallone Date: Tue, 26 Mar 2019 18:44:17 -0400 Subject: [PATCH] Updating Metadata to use hooks --- .../Metadata/__snapshots__/test.js.snap | 8 +--- src/components/Metadata/index.js | 38 ++++++++----------- src/components/Metadata/test.js | 11 ++---- src/pages/__snapshots__/404.test.js.snap | 2 +- src/pages/__snapshots__/index.test.js.snap | 4 +- src/pages/__snapshots__/privacy.test.js.snap | 2 +- 6 files changed, 25 insertions(+), 40 deletions(-) diff --git a/src/components/Metadata/__snapshots__/test.js.snap b/src/components/Metadata/__snapshots__/test.js.snap index ca8e43b..1f34460 100644 --- a/src/components/Metadata/__snapshots__/test.js.snap +++ b/src/components/Metadata/__snapshots__/test.js.snap @@ -5,9 +5,7 @@ exports[`Metadata rendering 1`] = ` @@ -22,9 +20,7 @@ exports[`Metadata rendering with a title and description 1`] = ` <span data-component="HelmetWrapper" data-props="{ - \\"htmlAttributes\\": { - \\"lang\\": \\"test-lang\\" - } + \\"htmlAttributes\\": {} }" > <title> diff --git a/src/components/Metadata/index.js b/src/components/Metadata/index.js index 3126ff2..8ece14f 100644 --- a/src/components/Metadata/index.js +++ b/src/components/Metadata/index.js @@ -1,29 +1,23 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { withTranslation } from 'react-i18next'; +import { useTranslation } from 'react-i18next'; import { Helmet } from 'react-helmet'; -class Metadata extends React.PureComponent { - static propTypes = { - title: PropTypes.string, - description: PropTypes.string, - i18n: PropTypes.shape({ - language: PropTypes.string.isRequired - }).isRequired - } +const Metadata = ({ title, description }) => { + const { i18n } = useTranslation(); + const htmlAttributes = { + lang: i18n.language + }; - render() { - const { title, description, i18n } = this.props; - const htmlAttributes = { - lang: i18n.language - }; + return <Helmet htmlAttributes={ htmlAttributes }> + <title>{ title ? `Regexper - ${ title }` : 'Regexper' } + { description && } + ; +}; - return - { title ? `Regexper - ${ title }` : 'Regexper' } - { description && } - ; - } -} +Metadata.propTypes = { + title: PropTypes.string, + description: PropTypes.string +}; -export { Metadata }; -export default withTranslation()(Metadata); +export default Metadata; diff --git a/src/components/Metadata/test.js b/src/components/Metadata/test.js index 89c4d29..0a3dfc8 100644 --- a/src/components/Metadata/test.js +++ b/src/components/Metadata/test.js @@ -9,16 +9,12 @@ jest.mock('react-helmet', () => { import React from 'react'; import { render } from 'react-testing-library'; -import { Metadata } from 'components/Metadata'; - -const commonProps = { - i18n: { language: 'test-lang' } -}; +import Metadata from 'components/Metadata'; describe('Metadata', () => { test('rendering', () => { const { asFragment } = render( - + ); expect(asFragment()).toMatchSnapshot(); }); @@ -27,8 +23,7 @@ describe('Metadata', () => { const { asFragment } = render( + description="Test description" /> ); expect(asFragment()).toMatchSnapshot(); }); diff --git a/src/pages/__snapshots__/404.test.js.snap b/src/pages/__snapshots__/404.test.js.snap index 43bfeea..4193668 100644 --- a/src/pages/__snapshots__/404.test.js.snap +++ b/src/pages/__snapshots__/404.test.js.snap @@ -3,7 +3,7 @@ exports[`Error Page rendering 1`] = `