1- import { Web3Provider } from "ethers/providers " ;
1+ import { providers } from "ethers" ;
22import React from "react" ;
33import { BrowserRouter , Route , Switch } from "react-router-dom" ;
4- import { ErrorBoundary , theme , RAlert , useMobile , Analytics } from "request-ui" ;
54import Intercom from "react-intercom" ;
5+ import { ErrorBoundary , theme , RAlert , useMobile , Analytics } from "request-ui" ;
66
77import {
88 CssBaseline ,
99 makeStyles ,
1010 ThemeProvider ,
1111 Link ,
12+ Box ,
1213} from "@material-ui/core" ;
1314import { useWeb3React , Web3ReactProvider } from "@web3-react/core" ;
1415
@@ -22,6 +23,8 @@ import { useEagerConnect } from "./hooks/useEagerConnect";
2223import { useInactiveListener } from "./hooks/useInactiveListnerer" ;
2324import { useConnectedUser , UserProvider } from "./contexts/UserContext" ;
2425import { injected } from "./connectors" ;
26+ import { CurrencyProvider , getCurrencies } from "request-shared" ;
27+ import { ChangeChainLink } from "./components/ChangeChainLink" ;
2528
2629const useStyles = makeStyles ( ( ) => ( {
2730 paper : {
@@ -33,7 +36,7 @@ const useStyles = makeStyles(() => ({
3336 } ,
3437} ) ) ;
3538
36- const App : React . FC = ( ) => {
39+ const AppInner : React . FC = ( ) => {
3740 const classes = useStyles ( ) ;
3841 const tried = useEagerConnect ( ) ;
3942 useInactiveListener ( ! tried ) ;
@@ -110,37 +113,51 @@ const App: React.FC = () => {
110113 }
111114 />
112115 ) }
113- { web3detected && error && error . name === "UnsupportedChainIdError" && (
114- < RAlert severity = "error" message = "Network not supported" />
116+ { web3detected && error && error . name === "UnsupportedChainIdError" ? (
117+ < ErrorPage
118+ topText = "Network not supported."
119+ bottomText = {
120+ < Box mt = { 4 } >
121+ < ChangeChainLink variant = "button" chain = "xdai" />
122+ </ Box >
123+ }
124+ />
125+ ) : (
126+ < div className = { classes . paper } >
127+ < Analytics trackingId = "UA-105153327-15" >
128+ < Switch >
129+ < Route path = "/" exact component = { CreatePage } />
130+ < Route path = "/dashboard" component = { DashboardPage } />
131+ < Route path = "/:id([0-9a-fA-F]+)" component = { RequestPage } />
132+ < Route path = "*" component = { NotFoundPage } />
133+ </ Switch >
134+ </ Analytics >
135+ </ div >
115136 ) }
116- < div className = { classes . paper } >
117- < Analytics trackingId = "UA-105153327-15" >
118- < Switch >
119- < Route path = "/" exact component = { CreatePage } />
120- < Route path = "/dashboard" component = { DashboardPage } />
121- < Route path = "/:id([0-9a-fA-F]+)" component = { RequestPage } />
122- < Route path = "*" component = { NotFoundPage } />
123- </ Switch >
124- </ Analytics >
125- </ div >
126137 </ ThemeProvider >
127138 </ BrowserRouter >
128139 ) ;
129140} ;
130141
131- export default ( ) => {
142+ const App = ( ) => {
132143 return (
133144 < ErrorBoundary
134145 stackdriverErrorReporterApiKey = "AIzaSyBr5Ix9knr8FPzOmkB6QmcEs-E9fjReZj8"
135146 projectId = "request-240714"
136147 service = "RequestApp"
137148 component = { ErrorPage }
138149 >
139- < Web3ReactProvider getLibrary = { ( provider ) => new Web3Provider ( provider ) } >
140- < UserProvider >
141- < App />
142- </ UserProvider >
150+ < Web3ReactProvider
151+ getLibrary = { provider => new providers . Web3Provider ( provider ) }
152+ >
153+ < CurrencyProvider currencies = { getCurrencies ( ) } >
154+ < UserProvider >
155+ < AppInner />
156+ </ UserProvider >
157+ </ CurrencyProvider >
143158 </ Web3ReactProvider >
144159 </ ErrorBoundary >
145160 ) ;
146161} ;
162+
163+ export default App ;
0 commit comments