diff --git a/packages/app/components/auth/AuthTitle.tsx b/packages/app/components/auth/AuthTitle.tsx index 2b3a9a4..769e400 100644 --- a/packages/app/components/auth/AuthTitle.tsx +++ b/packages/app/components/auth/AuthTitle.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { FormattedMessage as Message, MessageDescriptor } from 'react-intl'; export default function AuthTitle({ title }: { title: MessageDescriptor }) { diff --git a/packages/app/components/auth/finish/Finish.tsx b/packages/app/components/auth/finish/Finish.tsx index 5ba01e2..b52fba7 100644 --- a/packages/app/components/auth/finish/Finish.tsx +++ b/packages/app/components/auth/finish/Finish.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { Button } from 'app/components/ui/form'; import copy from 'app/services/copy'; import { RootState } from 'app/reducers'; diff --git a/packages/app/components/dev/apps/ApplicationsIndex.tsx b/packages/app/components/dev/apps/ApplicationsIndex.tsx index 3b3ebbf..d0b304a 100644 --- a/packages/app/components/dev/apps/ApplicationsIndex.tsx +++ b/packages/app/components/dev/apps/ApplicationsIndex.tsx @@ -1,7 +1,7 @@ import React from 'react'; import clsx from 'clsx'; import { FormattedMessage as Message } from 'react-intl'; -import { Helmet } from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { LinkButton } from 'app/components/ui/form'; import { COLOR_GREEN, COLOR_BLUE } from 'app/components/ui'; import { ContactLink } from 'app/components/contact'; diff --git a/packages/app/components/dev/apps/applicationForm/ApplicationForm.tsx b/packages/app/components/dev/apps/applicationForm/ApplicationForm.tsx index 14a7a93..863e13d 100644 --- a/packages/app/components/dev/apps/applicationForm/ApplicationForm.tsx +++ b/packages/app/components/dev/apps/applicationForm/ApplicationForm.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { FormattedMessage as Message } from 'react-intl'; -import { Helmet } from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { MessageDescriptor } from 'react-intl'; import { OauthAppResponse } from 'app/services/api/oauth'; import { ApplicationType } from 'app/components/dev/apps'; diff --git a/packages/app/components/profile/Profile.tsx b/packages/app/components/profile/Profile.tsx index d2bbabe..b8202e9 100644 --- a/packages/app/components/profile/Profile.tsx +++ b/packages/app/components/profile/Profile.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { connect } from 'react-redux'; import { FormattedMessage as Message } from 'react-intl'; import { Link } from 'react-router-dom'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { ChangeLanguageLink } from 'app/components/languageSwitcher'; import { RelativeTime } from 'app/components/ui'; import { User } from 'app/components/user'; diff --git a/packages/app/components/profile/changeEmail/ChangeEmail.tsx b/packages/app/components/profile/changeEmail/ChangeEmail.tsx index cbb2bfa..3000ba9 100644 --- a/packages/app/components/profile/changeEmail/ChangeEmail.tsx +++ b/packages/app/components/profile/changeEmail/ChangeEmail.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { SlideMotion } from 'app/components/ui/motion'; import { ScrollIntoView } from 'app/components/ui/scroll'; import { diff --git a/packages/app/components/profile/changePassword/ChangePassword.js b/packages/app/components/profile/changePassword/ChangePassword.js index 98fb716..fed03fd 100644 --- a/packages/app/components/profile/changePassword/ChangePassword.js +++ b/packages/app/components/profile/changePassword/ChangePassword.js @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { Input, Button, diff --git a/packages/app/components/profile/changeUsername/ChangeUsername.js b/packages/app/components/profile/changeUsername/ChangeUsername.js index c2d7e97..cfd1903 100644 --- a/packages/app/components/profile/changeUsername/ChangeUsername.js +++ b/packages/app/components/profile/changeUsername/ChangeUsername.js @@ -2,7 +2,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { Input, Button, Form, FormModel } from 'app/components/ui/form'; import { BackButton } from 'app/components/profile/ProfileForm'; diff --git a/packages/app/components/profile/multiFactorAuth/MultiFactorAuth.tsx b/packages/app/components/profile/multiFactorAuth/MultiFactorAuth.tsx index 248620c..ed91e90 100644 --- a/packages/app/components/profile/multiFactorAuth/MultiFactorAuth.tsx +++ b/packages/app/components/profile/multiFactorAuth/MultiFactorAuth.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { FormattedMessage as Message } from 'react-intl'; import styles from 'app/components/profile/profileForm.scss'; import { BackButton } from 'app/components/profile/ProfileForm'; diff --git a/packages/app/package.json b/packages/app/package.json index c28b0b4..d5810fc 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -19,7 +19,7 @@ "raven-js": "^3.27.0", "react": "^16.12.0", "react-dom": "^16.12.0", - "react-helmet": "^5.0.0", + "react-helmet-async": "^1.0.4", "react-hot-loader": "^4.12.18", "react-intl": "^3.9.3", "react-motion": "^0.5.0", diff --git a/packages/app/pages/404/PageNotFound.js b/packages/app/pages/404/PageNotFound.js index 9e1f839..7197416 100644 --- a/packages/app/pages/404/PageNotFound.js +++ b/packages/app/pages/404/PageNotFound.js @@ -4,7 +4,7 @@ import { FooterMenu } from 'app/components/footerMenu'; import { Link } from 'react-router-dom'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import styles from './404.scss'; import messages from './PageNotFound.intl.json'; diff --git a/packages/app/pages/auth/SuccessOauthPage.tsx b/packages/app/pages/auth/SuccessOauthPage.tsx index f482fc1..ce36e64 100644 --- a/packages/app/pages/auth/SuccessOauthPage.tsx +++ b/packages/app/pages/auth/SuccessOauthPage.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import loader from 'app/services/loader'; import { Query } from 'app/services/request'; diff --git a/packages/app/pages/root/RootPage.tsx b/packages/app/pages/root/RootPage.tsx index dd02234..f2e1027 100644 --- a/packages/app/pages/root/RootPage.tsx +++ b/packages/app/pages/root/RootPage.tsx @@ -4,7 +4,7 @@ import { resetAuth } from 'app/components/auth/actions'; import { withRouter } from 'react-router-dom'; import { FormattedMessage as Message } from 'react-intl'; import { Route, Link, Switch } from 'react-router-dom'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import clsx from 'clsx'; import AuthPage from 'app/pages/auth/AuthPage'; import ProfilePage from 'app/pages/profile/ProfilePage'; diff --git a/packages/app/pages/rules/RulesPage.tsx b/packages/app/pages/rules/RulesPage.tsx index 60b1844..2dd1652 100644 --- a/packages/app/pages/rules/RulesPage.tsx +++ b/packages/app/pages/rules/RulesPage.tsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import { FormattedMessage as Message } from 'react-intl'; -import Helmet from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { FooterMenu } from 'app/components/footerMenu'; import appInfo from 'app/components/auth/appInfo/AppInfo.intl.json'; diff --git a/packages/app/shell/ContextProvider.tsx b/packages/app/shell/ContextProvider.tsx index a4c62de..e9809fc 100644 --- a/packages/app/shell/ContextProvider.tsx +++ b/packages/app/shell/ContextProvider.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Provider as ReduxProvider } from 'react-redux'; import { Router } from 'react-router-dom'; +import { HelmetProvider } from 'react-helmet-async'; import { IntlProvider } from 'app/components/i18n'; import { Store } from 'app/reducers'; @@ -14,11 +15,13 @@ function ContextProvider({ history: any; }) { return ( - - - {children} - - + + + + {children} + + + ); } diff --git a/yarn.lock b/yarn.lock index 4cdd941..7b3bdc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10905,7 +10905,7 @@ prop-types-exact@^1.2.0: object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -11194,7 +11194,7 @@ react-error-overlay@^6.0.3: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.4.tgz#0d165d6d27488e660bc08e57bdabaad741366f7a" integrity sha512-ueZzLmHltszTshDMwyfELDq8zOA803wQ1ZuzCccXa1m57k1PxSHfflPD5W9YIiTXLs0JTLzoj6o1LuM5N6zzNA== -react-fast-compare@^2.0.2, react-fast-compare@^2.0.4: +react-fast-compare@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== @@ -11209,7 +11209,7 @@ react-focus-lock@^1.18.3: prop-types "^15.6.2" react-clientside-effect "^1.2.0" -react-helmet-async@^1.0.2: +react-helmet-async@^1.0.2, react-helmet-async@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.0.4.tgz#079ef10b7fefcaee6240fefd150711e62463cc97" integrity sha512-KTGHE9sz8N7+fCkZ2a3vzXH9eIkiTNhL2NhKR7XzzQl3WsGlCHh76arauJUIiGdfhjeMp7DY7PkASAmYFXeJYg== @@ -11220,16 +11220,6 @@ react-helmet-async@^1.0.2: react-fast-compare "^2.0.4" shallowequal "^1.1.0" -react-helmet@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-5.2.1.tgz#16a7192fdd09951f8e0fe22ffccbf9bb3e591ffa" - integrity sha512-CnwD822LU8NDBnjCpZ4ySh8L6HYyngViTZLfBBb3NjtrpN8m49clH8hidHouq20I51Y6TpCTISCBbqiY5GamwA== - dependencies: - object-assign "^4.1.1" - prop-types "^15.5.4" - react-fast-compare "^2.0.2" - react-side-effect "^1.1.0" - react-hot-loader@^4.12.18: version "4.12.18" resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.18.tgz#a9029e34af2690d76208f9a35189d73c2dfea6a7" @@ -11360,13 +11350,6 @@ react-router@5.1.2: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-side-effect@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.2.0.tgz#0e940c78faba0c73b9b0eba9cd3dda8dfb7e7dae" - integrity sha512-v1ht1aHg5k/thv56DRcjw+WtojuuDHFUgGfc+bFHOWsF4ZK6C2V57DO0Or0GPsg6+LSTE0M6Ry/gfzhzSwbc5w== - dependencies: - shallowequal "^1.0.1" - react-sizeme@^2.6.7: version "2.6.10" resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.6.10.tgz#9993dcb5e67fab94a8e5d078a0d3820609010f17" @@ -12300,7 +12283,7 @@ shallow-equal@^1.1.0, shallow-equal@^1.2.1: resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== -shallowequal@^1.0.1, shallowequal@^1.1.0: +shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==