diff --git a/web/package-lock.json b/web/package-lock.json index e2b95d6f..724c075b 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -47,7 +47,6 @@ "murmurhash-js": "1.0.x", "react": "^17.0.1", "react-dom": "^17.0.1", - "react-helmet": "^6.1.0", "react-i18next": "^11.8.11", "react-linkify": "^0.2.2", "react-modal": "^3.12.1", @@ -62,7 +61,6 @@ "@types/lodash-es": "^4.17.12", "@types/node": "^17.0.21", "@types/react": "17.0.83", - "@types/react-helmet": "^6.1.11", "@types/react-router-dom": "^5.3.2", "@types/webpack-dev-server": "^4.7.2", "@typescript-eslint/eslint-plugin": "^5.15.0", @@ -3213,16 +3211,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-helmet": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.11.tgz", - "integrity": "sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, "node_modules/@types/react-measure": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/@types/react-measure/-/react-measure-2.0.12.tgz", @@ -12401,21 +12389,6 @@ "react-dom": ">= 16.3.0" } }, - "node_modules/react-helmet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", - "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.1.1", - "react-side-effect": "^2.1.0" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, "node_modules/react-hook-form": { "version": "7.54.2", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", @@ -12692,15 +12665,6 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, - "node_modules/react-side-effect": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", - "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", - "license": "MIT", - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", diff --git a/web/package.json b/web/package.json index 3990956d..3c2e3988 100644 --- a/web/package.json +++ b/web/package.json @@ -64,7 +64,6 @@ "murmurhash-js": "1.0.x", "react": "^17.0.1", "react-dom": "^17.0.1", - "react-helmet": "^6.1.0", "react-i18next": "^11.8.11", "react-linkify": "^0.2.2", "react-modal": "^3.12.1", @@ -79,7 +78,6 @@ "@types/lodash-es": "^4.17.12", "@types/node": "^17.0.21", "@types/react": "17.0.83", - "@types/react-helmet": "^6.1.11", "@types/react-router-dom": "^5.3.2", "@types/webpack-dev-server": "^4.7.2", "@typescript-eslint/eslint-plugin": "^5.15.0", diff --git a/web/src/components/Incidents/IncidentsPage.jsx b/web/src/components/Incidents/IncidentsPage.jsx index 84256e0b..72fec2ec 100644 --- a/web/src/components/Incidents/IncidentsPage.jsx +++ b/web/src/components/Incidents/IncidentsPage.jsx @@ -16,12 +16,11 @@ import { ToolbarItem, MenuToggle, Badge, - Title, PageSection, Stack, StackItem, } from '@patternfly/react-core'; -import { Helmet } from 'react-helmet'; +import { DocumentTitle } from '@openshift-console/dynamic-plugin-sdk'; import { IncidentsTable } from './IncidentsTable'; import { getIncidentsTimeRanges, @@ -277,9 +276,7 @@ const IncidentsPage = () => { return ( <> - - {title} - + {title} {alertsAreLoading && incidentsAreLoading ? ( diff --git a/web/src/components/MetricsPage.tsx b/web/src/components/MetricsPage.tsx index e0def425..1348268f 100644 --- a/web/src/components/MetricsPage.tsx +++ b/web/src/components/MetricsPage.tsx @@ -1,4 +1,6 @@ import { + DocumentTitle, + ListPageHeader, PrometheusData, PrometheusEndpoint, PrometheusLabels, @@ -57,7 +59,6 @@ import { } from '@patternfly/react-table'; import * as _ from 'lodash-es'; import * as React from 'react'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -1230,17 +1231,9 @@ const MetricsPage_: React.FC = () => { return ( <> - - {t('Metrics')} - - + {t('Metrics')} + - {perspective !== 'dev' && ( - - {t('Metrics')} - - )} - @@ -1248,7 +1241,7 @@ const MetricsPage_: React.FC = () => { - + diff --git a/web/src/components/alerting/AlertRulesDetailsPage.tsx b/web/src/components/alerting/AlertRulesDetailsPage.tsx index ec685351..0ddbf9eb 100644 --- a/web/src/components/alerting/AlertRulesDetailsPage.tsx +++ b/web/src/components/alerting/AlertRulesDetailsPage.tsx @@ -1,6 +1,7 @@ import { AlertingRuleChartExtension, AlertStates, + DocumentTitle, isAlertingRuleChart, PrometheusAlert, ResourceIcon, @@ -38,7 +39,6 @@ import { import { Table, TableVariant, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; import * as _ from 'lodash-es'; import * as React from 'react'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { Link, useNavigate, useParams } from 'react-router-dom-v5-compat'; @@ -179,9 +179,9 @@ const AlertRulesDetailsPage_: React.FC = () => { return ( <> - - {t('{{name}} details', { name: rule?.name || RuleResource.label })} - + + {t('{{name}} details', { name: rule?.name || RuleResource.label })} + diff --git a/web/src/components/alerting/AlertRulesPage.tsx b/web/src/components/alerting/AlertRulesPage.tsx index 77c93669..3d76e542 100644 --- a/web/src/components/alerting/AlertRulesPage.tsx +++ b/web/src/components/alerting/AlertRulesPage.tsx @@ -1,5 +1,6 @@ import { AlertStates, + DocumentTitle, ListPageFilter, PrometheusAlert, ResourceIcon, @@ -14,7 +15,6 @@ import { import { sortable, Td } from '@patternfly/react-table'; import * as _ from 'lodash-es'; import * as React from 'react'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { Link } from 'react-router-dom-v5-compat'; @@ -214,9 +214,7 @@ const AlertRulesPage_: React.FC = () => { return ( <> - - Alerting - + {t('Alerting')} import(/* webpackChunkName: "AlertsPage" */ '../alerting/AlertsPage'), @@ -49,10 +52,8 @@ const AlertingPage: React.FC = () => { return ( <> - - {t('Alerting')} - - + + ); }; diff --git a/web/src/components/alerting/AlertsDetailsPage.tsx b/web/src/components/alerting/AlertsDetailsPage.tsx index 0b7d66ba..50c2a28d 100644 --- a/web/src/components/alerting/AlertsDetailsPage.tsx +++ b/web/src/components/alerting/AlertsDetailsPage.tsx @@ -3,6 +3,7 @@ import { Alert, AlertingRuleChartExtension, AlertStates, + DocumentTitle, isAlertingRuleChart, PrometheusLabels, ResourceIcon, @@ -56,7 +57,6 @@ import { ToolbarGroup, ToolbarItem, } from '@patternfly/react-core'; -import { Helmet } from 'react-helmet'; import { MonitoringState } from '../../reducers/observe'; import withFallback from '../console/console-shared/error/fallbacks/withFallback'; import { StatusBox } from '../console/console-shared/src/components/status/StatusBox'; @@ -150,9 +150,9 @@ const AlertsDetailsPage_: React.FC = () => { return ( <> - - {t('{{name}} details', { name: labels?.alertname || AlertResource.label })} - + + {t('{{name}} details', { name: labels?.alertname || AlertResource.label })} + { return ( <> - - Alerting - + {t('Alerting')} = ({ defaults, Info, title }) => return ( <> - - {title} - + {title} {title} diff --git a/web/src/components/alerting/SilencesDetailsPage.tsx b/web/src/components/alerting/SilencesDetailsPage.tsx index 270f8512..fd3844b0 100644 --- a/web/src/components/alerting/SilencesDetailsPage.tsx +++ b/web/src/components/alerting/SilencesDetailsPage.tsx @@ -4,6 +4,7 @@ import { useSelector } from 'react-redux'; import { Alert, + DocumentTitle, ResourceIcon, Timestamp, useActiveNamespace, @@ -28,7 +29,6 @@ import { SplitItem, Title, } from '@patternfly/react-core'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; import { MonitoringState } from 'src/reducers/observe'; import { @@ -72,9 +72,9 @@ const SilencesDetailsPage_: React.FC = () => { return ( <> - - {t('{{name}} details', { name: silence?.name || SilenceResource.label })} - + + {t('{{name}} details', { name: silence?.name || SilenceResource.label })} + { return ( <> - {perspective === 'dev' ? Silences : Alerting} + {perspective === 'dev' ? t('Silences') : t('Alerting')} diff --git a/web/src/components/dashboards/legacy/dashboard-skeleton-legacy.tsx b/web/src/components/dashboards/legacy/dashboard-skeleton-legacy.tsx index b2bfadb3..e49676fc 100644 --- a/web/src/components/dashboards/legacy/dashboard-skeleton-legacy.tsx +++ b/web/src/components/dashboards/legacy/dashboard-skeleton-legacy.tsx @@ -1,17 +1,8 @@ import * as _ from 'lodash-es'; import * as React from 'react'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; - -import { - Divider, - PageSection, - Split, - SplitItem, - Stack, - StackItem, - Title, -} from '@patternfly/react-core'; +import { DocumentTitle, ListPageHeader } from '@openshift-console/dynamic-plugin-sdk'; +import { Divider, PageSection, Split, SplitItem, Stack, StackItem } from '@patternfly/react-core'; import { usePerspective } from '../../hooks/usePerspective'; import { CombinedDashboardMetadata } from '../perses/hooks/useDashboardsData'; import { DashboardDropdown } from '../shared/dashboard-dropdown'; @@ -22,21 +13,16 @@ const HeaderTop: React.FC = React.memo(() => { const { t } = useTranslation(process.env.I18N_NAMESPACE); return ( - - - {t('Dashboards')} - - - - - - - - - - - - + + + + + + + + + + ); }); @@ -61,13 +47,9 @@ export const DashboardSkeletonLegacy: React.FC - {perspective !== 'dev' && ( - - {t('Metrics dashboards')} - - )} + {perspective !== 'dev' && {t('Metrics dashboards')}} + {perspective !== 'dev' && } - {perspective !== 'dev' && } {!_.isEmpty(boardItems) && ( diff --git a/web/src/components/dashboards/perses/dashboard-skeleton.tsx b/web/src/components/dashboards/perses/dashboard-skeleton.tsx index f25af784..cd570914 100644 --- a/web/src/components/dashboards/perses/dashboard-skeleton.tsx +++ b/web/src/components/dashboards/perses/dashboard-skeleton.tsx @@ -1,17 +1,8 @@ import * as _ from 'lodash-es'; import * as React from 'react'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; - -import { - Divider, - PageSection, - Split, - SplitItem, - Stack, - StackItem, - Title, -} from '@patternfly/react-core'; +import { DocumentTitle, ListPageHeader } from '@openshift-console/dynamic-plugin-sdk'; +import { Divider, PageSection, Split, SplitItem, Stack, StackItem } from '@patternfly/react-core'; import { DashboardStickyToolbar, useDashboardActions, @@ -26,18 +17,13 @@ const HeaderTop: React.FC = React.memo(() => { const { t } = useTranslation(process.env.I18N_NAMESPACE); return ( - - - {t('Dashboards')} - - - - - - - - - + + + + + + + ); }); @@ -78,13 +64,9 @@ export const DashboardSkeleton: React.FC = React. return ( <> - {perspective !== 'dev' && ( - - {t('Metrics dashboards')} - - )} + {perspective !== 'dev' && {t('Metrics dashboards')}} + {perspective !== 'dev' && } - {perspective !== 'dev' && } {!_.isEmpty(boardItems) && ( diff --git a/web/src/components/targets-page.tsx b/web/src/components/targets-page.tsx index 0705f1a6..944cb97b 100644 --- a/web/src/components/targets-page.tsx +++ b/web/src/components/targets-page.tsx @@ -1,4 +1,5 @@ import { + DocumentTitle, GreenCheckCircleIcon, K8sModel, K8sResourceKind, @@ -37,7 +38,6 @@ import { import { sortable, Td } from '@patternfly/react-table'; import { find, includes, isEmpty } from 'lodash-es'; import * as React from 'react'; -import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; import { Link, useParams } from 'react-router-dom-v5-compat'; import { EmptyBox } from './console/console-shared/src/components/empty-state/EmptyBox'; @@ -254,9 +254,7 @@ const Details: React.FC = ({ loaded, loadError, targets }) => { return ( <> - - {t('Target details')} - + {t('Target details')} @@ -518,9 +516,7 @@ const ListPage: React.FC = ({ loaded, loadError, targets }) => { return ( <> - - {title} - + {title} {loadError && (