react-helmet 5 is unmaintained and breaks under React 18 StrictMode. Same <Helmet> API in the 15 pages; HelmetProvider wraps <App/> in the client entry. Browser-verified: per-page titles, meta description and hreflang alternates all inject. REST smoke byte-identical.
24 lines
951 B
JavaScript
24 lines
951 B
JavaScript
/* global */
|
|
import React from 'react';
|
|
import { createRoot } from 'react-dom/client';
|
|
import { HelmetProvider } from 'react-helmet-async';
|
|
import { Meteor } from 'meteor/meteor';
|
|
import '/imports/startup/client/modernizr';
|
|
import App from '../../ui/layouts/App/App';
|
|
|
|
import '../../ui/stylesheets/app.scss';
|
|
|
|
// https://stackoverflow.com/questions/19562207/jquery-detect-browser-ie9-and-below-and-throw-up-a-modal-to-upgrade
|
|
const isIE9OrBelow = () => /MSIE\s/.test(navigator.userAgent) && parseFloat(navigator.appVersion.split('MSIE')[1]) < 10;
|
|
|
|
if (isIE9OrBelow()) window.alert('You are using an outdated browser. Please use Chrome or Firefox to display this site.');
|
|
else {
|
|
Modernizr.on('webp', (result) => {
|
|
if (Meteor.isDevelopment) console.log(`webp ${result ? '' : 'not '}supported`);
|
|
});
|
|
Meteor.startup(() => createRoot(document.getElementById('react-root')).render(
|
|
<HelmetProvider>
|
|
<App />
|
|
</HelmetProvider>
|
|
));
|
|
}
|