mango-v4-ui/pages/_app.tsx

55 lines
1.7 KiB
TypeScript
Raw Normal View History

import '../styles/globals.css'
2022-04-12 13:48:22 -07:00
import type { AppProps } from 'next/app'
import { useMemo } from 'react'
2022-07-05 20:37:49 -07:00
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base'
2022-07-26 18:30:51 -07:00
import { ConnectionProvider } from '@solana/wallet-adapter-react'
2022-06-10 06:05:45 -07:00
import {
GlowWalletAdapter,
PhantomWalletAdapter,
SolflareWalletAdapter,
} from '@solana/wallet-adapter-wallets'
import { clusterApiUrl } from '@solana/web3.js'
2022-07-05 20:37:49 -07:00
import Notifications from '../components/shared/Notification'
import { ThemeProvider } from 'next-themes'
2022-07-14 16:36:31 -07:00
import { appWithTranslation } from 'next-i18next'
2022-07-26 19:45:27 -07:00
import Layout from '../components/Layout'
2022-07-18 04:17:56 -07:00
import { ViewportProvider } from '../hooks/useViewport'
2022-07-26 18:47:11 -07:00
import { WalletProvider } from '../components/wallet/WalletProvider'
import MangoProvider from '@components/MangoProvider'
2022-06-10 06:05:45 -07:00
// Do not add hooks to this component that will cause unnecessary rerenders
// Top level state hydrating/updating should go in MangoProvider
2022-06-29 20:37:25 -07:00
function MyApp({ Component, pageProps }: AppProps) {
2022-06-10 06:05:45 -07:00
const network = WalletAdapterNetwork.Devnet
const endpoint = useMemo(() => clusterApiUrl(network), [network])
const wallets = useMemo(
() => [
new PhantomWalletAdapter(),
new GlowWalletAdapter(),
new SolflareWalletAdapter({ network }),
],
[network]
)
return (
2022-06-29 20:37:25 -07:00
<>
<MangoProvider />
2022-06-29 20:37:25 -07:00
<ConnectionProvider endpoint={endpoint}>
2022-07-05 20:37:49 -07:00
<WalletProvider wallets={wallets}>
<ThemeProvider defaultTheme="Dark">
2022-07-26 18:21:17 -07:00
<ViewportProvider>
<Layout>
<Component {...pageProps} />
</Layout>
</ViewportProvider>
<Notifications />
</ThemeProvider>
2022-06-29 20:37:25 -07:00
</WalletProvider>
</ConnectionProvider>
</>
2022-06-10 06:05:45 -07:00
)
2022-04-12 13:48:22 -07:00
}
2022-07-14 16:36:31 -07:00
export default appWithTranslation(MyApp)