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. - Sets standard page layout, about modal, and root dialog modal.
- **RootProvider.jsx** - **RootProvider.jsx**
- Sets up all context providers. - Sets up all context providers.
- Initializes i18n. - Initializes i18n and router
### Naming files ### Naming files

View File

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

View File

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

View File

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