move router setup to RootProvider

This commit is contained in:
John Mitchell
2019-04-11 17:07:46 -04:00
parent 85b9b4f896
commit 64aecb85fa
4 changed files with 217 additions and 208 deletions

View File

@@ -84,7 +84,7 @@ In the root of `/src`, there are a few files which are used to initialize the re
- Sets standard page layout, about modal, and root dialog modal.
- **RootProvider.jsx**
- Sets up all context providers.
- Initializes i18n.
- Initializes i18n and router
### Naming files

View File

@@ -1,7 +1,13 @@
import React from 'react';
import { mount } from 'enzyme';
import { MemoryRouter } from 'react-router-dom';
import { main } from '../src/index';
const render = template => mount(template);
const render = template => mount(
<MemoryRouter>
{template}
</MemoryRouter>
);
describe('index.jsx', () => {
test('index.jsx loads without issue', () => {

View File

@@ -3,6 +3,10 @@ import {
I18nProvider,
} from '@lingui/react';
import {
HashRouter
} from 'react-router-dom';
import { NetworkProvider } from './contexts/Network';
import { RootDialogProvider } from './contexts/RootDialog';
import { ConfigProvider } from './contexts/Config';
@@ -25,6 +29,7 @@ class RootProvider extends Component {
const language = getLanguage(navigator);
return (
<HashRouter>
<I18nProvider
language={language}
catalogs={catalogs}
@@ -37,6 +42,7 @@ class RootProvider extends Component {
</NetworkProvider>
</RootDialogProvider>
</I18nProvider>
</HashRouter>
);
}
}

View File

@@ -1,7 +1,6 @@
import React from 'react';
import ReactDOM from 'react-dom';
import {
HashRouter,
Route,
Switch,
Redirect
@@ -54,7 +53,6 @@ export function main (render) {
const el = document.getElementById('app');
return render(
<HashRouter>
<RootProvider>
<I18n>
{({ i18n }) => (
@@ -245,8 +243,7 @@ export function main (render) {
</Background>
)}
</I18n>
</RootProvider>
</HashRouter>, el || document.createElement('div')
</RootProvider>, el || document.createElement('div')
);
}