diff --git a/webapps/world-builder-dashboard/package-lock.json b/webapps/world-builder-dashboard/package-lock.json index 78c16595..cb151bb7 100644 --- a/webapps/world-builder-dashboard/package-lock.json +++ b/webapps/world-builder-dashboard/package-lock.json @@ -19,6 +19,7 @@ "prettier-plugin-tailwindcss": "^0.6.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-helmet-async": "^2.0.5", "react-query": "^3.39.3", "react-router-dom": "^6.11.2", "summon-ui": "^0.21.0" @@ -9493,6 +9494,24 @@ "react": ">= 16.8 || 18.0.0" } }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-helmet-async": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.5.tgz", + "integrity": "sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==", + "dependencies": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-intl": { "version": "6.6.8", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.6.8.tgz", @@ -9981,6 +10000,11 @@ "node": ">= 0.4" } }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/webapps/world-builder-dashboard/package.json b/webapps/world-builder-dashboard/package.json index 6e1fb7cb..b3d6b885 100644 --- a/webapps/world-builder-dashboard/package.json +++ b/webapps/world-builder-dashboard/package.json @@ -22,6 +22,7 @@ "prettier-plugin-tailwindcss": "^0.6.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-helmet-async": "^2.0.5", "react-query": "^3.39.3", "react-router-dom": "^6.11.2", "summon-ui": "^0.21.0" diff --git a/webapps/world-builder-dashboard/src/App.tsx b/webapps/world-builder-dashboard/src/App.tsx index 542a1ba0..0452001d 100644 --- a/webapps/world-builder-dashboard/src/App.tsx +++ b/webapps/world-builder-dashboard/src/App.tsx @@ -1,3 +1,4 @@ +import { HelmetProvider } from 'react-helmet-async' import { QueryClient, QueryClientProvider } from 'react-query' import { RouterProvider } from 'react-router-dom' import { FIVE_MINUTES } from '../constants' @@ -50,30 +51,32 @@ const { name, lang, uiTheme } = TENANT_CONFIG export default function App() { return ( - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + ) } diff --git a/webapps/world-builder-dashboard/src/layouts/MainLayout/MainLayout.tsx b/webapps/world-builder-dashboard/src/layouts/MainLayout/MainLayout.tsx index d27c6ceb..c1831689 100644 --- a/webapps/world-builder-dashboard/src/layouts/MainLayout/MainLayout.tsx +++ b/webapps/world-builder-dashboard/src/layouts/MainLayout/MainLayout.tsx @@ -1,5 +1,6 @@ // React and related libraries import React from 'react' +import { Helmet } from 'react-helmet-async' import { Outlet } from 'react-router-dom' // Styles @@ -32,6 +33,14 @@ const MainLayout: React.FC = ({}) => { const smallView = useMediaQuery('(max-width: 1199px)') return (
+ + + + + {smallView ? ( ) : ( diff --git a/webapps/world-builder-dashboard/src/pages/BridgePage/BridgePage.tsx b/webapps/world-builder-dashboard/src/pages/BridgePage/BridgePage.tsx index a3cb42c3..a3f4bca6 100644 --- a/webapps/world-builder-dashboard/src/pages/BridgePage/BridgePage.tsx +++ b/webapps/world-builder-dashboard/src/pages/BridgePage/BridgePage.tsx @@ -1,5 +1,6 @@ // React and hooks import { useEffect, useState } from 'react' +import { Helmet } from 'react-helmet-async' import { useQueryClient } from 'react-query' import { useLocation, useNavigate } from 'react-router-dom' // Styles @@ -43,6 +44,11 @@ const BridgePage = () => { return (
+ + + + +
{notifications.data && } diff --git a/webapps/world-builder-dashboard/src/pages/FaucetPage/FaucetPage.tsx b/webapps/world-builder-dashboard/src/pages/FaucetPage/FaucetPage.tsx index 1e2ac477..79bb7b50 100644 --- a/webapps/world-builder-dashboard/src/pages/FaucetPage/FaucetPage.tsx +++ b/webapps/world-builder-dashboard/src/pages/FaucetPage/FaucetPage.tsx @@ -1,5 +1,6 @@ // React and hooks import { useEffect, useState } from 'react' +import { Helmet } from 'react-helmet-async' import { useQueryClient } from 'react-query' // Styles import bridgeStyles from '../BridgePage/BridgePage.module.css' @@ -34,6 +35,11 @@ const BridgePage = () => { return (
+ + + + +
{notifications.data && }