-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path_app.tsx
78 lines (73 loc) · 2.11 KB
/
_app.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import '../styles/globals.css';
import '@interchain-ui/react/styles';
import type { AppProps } from 'next/app';
import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
import { ChainProvider } from '@interchain-kit/react';
import { defaultAssetList, defaultChain } from '../config/defaults';
import { keplrWallet } from '@interchain-kit/keplr-extension';
import { leapWallet } from '@interchain-kit/leap-extension';
import { defaultSignerOptions } from '@interchainjs/injective/defaults';
import {
Box,
ThemeProvider,
Toaster,
useTheme,
useColorModeValue,
} from '@interchain-ui/react';
import { defaultRpcEndpoint } from '@/config';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: 2,
refetchOnWindowFocus: false,
},
},
});
function CreateCosmosApp({ Component, pageProps }: AppProps) {
const { themeClass } = useTheme();
return (
<ThemeProvider>
<ChainProvider
// @ts-ignore
chains={[defaultChain!]}
// @ts-ignore
assetLists={[defaultAssetList!]}
wallets={[keplrWallet, leapWallet]}
signerOptions={{
signing: (chain) => {
if (chain === 'injective') {
return {
signerOptions: defaultSignerOptions.Cosmos,
broadcast: {
checkTx: true,
deliverTx: true,
},
};
}
},
}}
endpointOptions={{
endpoints: {
injective: {
rpc: [defaultRpcEndpoint],
},
},
}}
>
<QueryClientProvider client={queryClient}>
<Box
className={themeClass}
minHeight="100dvh"
backgroundColor={useColorModeValue('$white', '$background')}
>
{/* TODO fix type error */}
{/* @ts-ignore */}
<Component {...pageProps} />
</Box>
</QueryClientProvider>
</ChainProvider>
<Toaster position={'top-right'} closeButton={true} />
</ThemeProvider>
);
}
export default CreateCosmosApp;