1- import { opBnbTestnetFourierForkTimestamp } from '@venusprotocol/chains' ;
2-
31import { QueryClientProvider } from '@tanstack/react-query' ;
42import { queryClient } from 'clients/api' ;
53import config from 'config' ;
4+ import { useChain } from 'hooks/useChain' ;
65import { AnalyticProvider } from 'libs/analytics' ;
76import { ErrorBoundary } from 'libs/errors' ;
87import { SentryErrorInfo } from 'libs/errors/SentryErrorInfo' ;
98import { Web3Wrapper } from 'libs/wallet' ;
10- import { Suspense } from 'react' ;
9+ import { Suspense , useMemo } from 'react' ;
1110import { Helmet } from 'react-helmet' ;
1211import { HashRouter } from 'react-router' ;
1312import { safeLazyLoad } from 'utilities' ;
@@ -22,61 +21,65 @@ const GaslessChecker = safeLazyLoad(() => import('containers/GaslessChecker'));
2221const ResendPayingGasModal = safeLazyLoad ( ( ) => import ( 'containers/ResendPayingGasModal' ) ) ;
2322const ImportPositionsModal = safeLazyLoad ( ( ) => import ( 'containers/ImportPositionsModal' ) ) ;
2423
25- const App = ( ) => (
26- < >
27- {
28- // Only index production with search engines
29- config . environment !== 'production' && (
30- < Helmet >
31- < meta name = "robots" content = "noindex" />
32- </ Helmet >
33- )
34- }
24+ const App = ( ) => {
25+ const { hardforks } = useChain ( ) ;
26+ const upgradeTimestamps = useMemo (
27+ ( ) => hardforks ?. map ( hardfork => new Date ( hardfork . startTimestamp ) ) ?? [ ] ,
28+ [ hardforks ] ,
29+ ) ;
30+
31+ return (
32+ < >
33+ {
34+ // Only index production with search engines
35+ config . environment !== 'production' && (
36+ < Helmet >
37+ < meta name = "robots" content = "noindex" />
38+ </ Helmet >
39+ )
40+ }
3541
36- < HashRouter >
37- < MuiThemeProvider >
38- < QueryClientProvider client = { queryClient } >
39- < ErrorBoundary >
40- < Web3Wrapper >
41- < AnalyticProvider >
42- < Routes />
42+ < HashRouter >
43+ < MuiThemeProvider >
44+ < QueryClientProvider client = { queryClient } >
45+ < ErrorBoundary >
46+ < Web3Wrapper >
47+ < AnalyticProvider >
48+ < Routes />
4349
44- < Suspense >
45- < NotificationCenter />
46- </ Suspense >
50+ < Suspense >
51+ < NotificationCenter />
52+ </ Suspense >
4753
48- < Suspense >
49- < AppVersionChecker />
50- </ Suspense >
54+ < Suspense >
55+ < AppVersionChecker />
56+ </ Suspense >
5157
52- < Suspense >
53- < GaslessChecker />
54- </ Suspense >
58+ < Suspense >
59+ < GaslessChecker />
60+ </ Suspense >
5561
56- < Suspense >
57- < ResendPayingGasModal />
58- </ Suspense >
62+ < Suspense >
63+ < ResendPayingGasModal />
64+ </ Suspense >
5965
60- < Suspense >
61- < ImportPositionsModal />
62- </ Suspense >
66+ < Suspense >
67+ < ImportPositionsModal />
68+ </ Suspense >
6369
64- < ThemeHandler />
70+ < ThemeHandler />
6571
66- < ChainUpgradeHandler
67- upgradeTimestamps = {
68- config . network === 'testnet' ? [ opBnbTestnetFourierForkTimestamp ] : [ ]
69- }
70- />
72+ < ChainUpgradeHandler upgradeTimestamps = { upgradeTimestamps } />
7173
72- < SentryErrorInfo />
73- </ AnalyticProvider >
74- </ Web3Wrapper >
75- </ ErrorBoundary >
76- </ QueryClientProvider >
77- </ MuiThemeProvider >
78- </ HashRouter >
79- </ >
80- ) ;
74+ < SentryErrorInfo />
75+ </ AnalyticProvider >
76+ </ Web3Wrapper >
77+ </ ErrorBoundary >
78+ </ QueryClientProvider >
79+ </ MuiThemeProvider >
80+ </ HashRouter >
81+ </ >
82+ ) ;
83+ } ;
8184
8285export default App ;
0 commit comments