2022-05-03 21:20:14 -07:00
|
|
|
import { useEffect, useMemo } from 'react'
|
2022-04-12 13:48:22 -07:00
|
|
|
import type { NextPage } from 'next'
|
2022-05-03 21:20:14 -07:00
|
|
|
import {
|
|
|
|
ConnectionProvider,
|
|
|
|
WalletProvider,
|
|
|
|
} from '@solana/wallet-adapter-react'
|
|
|
|
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base'
|
|
|
|
import {
|
|
|
|
GlowWalletAdapter,
|
|
|
|
PhantomWalletAdapter,
|
|
|
|
SolflareWalletAdapter,
|
|
|
|
} from '@solana/wallet-adapter-wallets'
|
|
|
|
import { WalletModalProvider } from '@solana/wallet-adapter-react-ui'
|
|
|
|
import { clusterApiUrl } from '@solana/web3.js'
|
2022-05-31 18:41:18 -07:00
|
|
|
|
|
|
|
import Home from '../components/Home'
|
2022-05-03 21:20:14 -07:00
|
|
|
import mangoStore from '../store/state'
|
|
|
|
import TopBar from '../components/TopBar'
|
|
|
|
import WalletListener from '../components/wallet/WalletListener'
|
2022-05-31 18:41:18 -07:00
|
|
|
import useInterval from '../components/shared/useInterval'
|
2022-05-03 21:20:14 -07:00
|
|
|
|
|
|
|
const hydrateStore = async () => {
|
|
|
|
const actions = mangoStore.getState().actions
|
|
|
|
actions.fetchGroup()
|
|
|
|
}
|
2022-04-12 13:48:22 -07:00
|
|
|
|
2022-05-31 18:41:18 -07:00
|
|
|
const Index: NextPage = () => {
|
2022-05-03 21:20:14 -07:00
|
|
|
const network = WalletAdapterNetwork.Devnet
|
|
|
|
const endpoint = useMemo(() => clusterApiUrl(network), [network])
|
2022-05-31 18:41:18 -07:00
|
|
|
|
|
|
|
useInterval(() => {
|
|
|
|
const actions = mangoStore.getState().actions
|
|
|
|
actions.reloadGroup()
|
|
|
|
}, 10000)
|
2022-04-12 13:48:22 -07:00
|
|
|
|
2022-05-03 21:20:14 -07:00
|
|
|
useEffect(() => {
|
|
|
|
hydrateStore()
|
|
|
|
}, [])
|
2022-04-12 13:48:22 -07:00
|
|
|
|
2022-05-03 21:20:14 -07:00
|
|
|
const wallets = useMemo(
|
|
|
|
() => [
|
|
|
|
new PhantomWalletAdapter(),
|
|
|
|
new GlowWalletAdapter(),
|
|
|
|
new SolflareWalletAdapter({ network }),
|
|
|
|
],
|
|
|
|
[network]
|
|
|
|
)
|
2022-04-12 13:48:22 -07:00
|
|
|
|
2022-05-03 21:20:14 -07:00
|
|
|
return (
|
|
|
|
<div className="">
|
|
|
|
<ConnectionProvider endpoint={endpoint}>
|
|
|
|
<WalletProvider wallets={wallets} autoConnect>
|
|
|
|
<WalletModalProvider>
|
|
|
|
<WalletListener />
|
|
|
|
<TopBar />
|
2022-04-12 13:48:22 -07:00
|
|
|
|
2022-05-31 18:41:18 -07:00
|
|
|
<Home />
|
2022-05-03 21:20:14 -07:00
|
|
|
</WalletModalProvider>
|
|
|
|
</WalletProvider>
|
|
|
|
</ConnectionProvider>
|
2022-04-12 13:48:22 -07:00
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2022-05-31 18:41:18 -07:00
|
|
|
export default Index
|