import axios from 'axios';
import PropTypes from 'prop-types';
import React from 'react';
+import { Helmet } from 'react-helmet';
import { withTranslation } from 'react-i18next';
import NotFound from './NotFound';
+import CanonicalLinks from '../common/CanonicalLinks';
import ErrorBoundary from '../common/ErrorBoundary';
import ErrorMessage from '../common/ErrorMessage';
import Loading from '../common/Loading';
if (!techniques.length) {
setLoading(true);
}
- window.document.title = i18n.t(`${namespace}.heading`);
axios
- .get(`/api/content`, {
- params: {
- type,
- ...filter,
- },
+ .get(`/api/pages/${type}`, {
+ params: filter,
signal: ctrl.signal
})
.then(response => {
}, [filter, namespace, type]);
React.useEffect(() => {
- window.document.title = i18n.t(`${namespace}.heading`);
setTechniques(t => [...t].sort(compareTranslation('title', i18n.language)));
}, [namespace, i18n.language]);
}
return <ErrorBoundary>
+ <Helmet>
+ <title>{i18n.t(`${namespace}.heading`)}</title>
+ <meta name="description" content={i18n.t(`${namespace}.description`)} />
+ </Helmet>
+ <CanonicalLinks base="/tech" />
<Overview
filter={filter}
namespace={namespace}