servatrice/webclient/src/containers/App/AppShell.tsx
Jeremy Letto 9577ada171
Webatrice: i18n (#4562)
* implement i18n capability

* reset package.lock file

* remove custom fallback

* fix relative path for i18n files

* check for language support before fetch request

* add LanguageDropdown component, es translation file to prove functionality

* remove boilerplate

* bundle default english translation with app

* add missing file

* rollup component-level i18n files

* cleanup

Co-authored-by: Jeremy Letto <jeremy.letto@datasite.com>
2022-02-26 21:36:53 -06:00

45 lines
1.1 KiB
TypeScript

import { Component, Suspense } from 'react';
import { Provider } from 'react-redux';
import { MemoryRouter as Router } from 'react-router-dom';
import CssBaseline from '@material-ui/core/CssBaseline';
import { store } from 'store';
import { Header } from 'components';
import Routes from './AppShellRoutes';
import FeatureDetection from './FeatureDetection';
import './AppShell.css';
import { ToastProvider } from 'components/Toast'
class AppShell extends Component {
componentDidMount() {
// @TODO (1)
window.onbeforeunload = () => true;
}
handleContextMenu(event) {
event.preventDefault();
}
render() {
return (
<Suspense fallback="loading">
<Provider store={store}>
<CssBaseline />
<ToastProvider>
<div className="AppShell" onContextMenu={this.handleContextMenu}>
<Router>
<Header />
<FeatureDetection />
<Routes />
</Router>
</div>
</ToastProvider>
</Provider>
</Suspense>
);
}
}
export default AppShell;