/ context / index.tsx
index.tsx
 1  'use client'
 2  
 3  import { wagmiAdapter, projectId } from '@/config'
 4  import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
 5  import { createAppKit } from '@reown/appkit/react'
 6  import { mainnet, arbitrum, avalanche, base, optimism, polygon } from '@reown/appkit/networks'
 7  import React, { type ReactNode } from 'react'
 8  import { cookieToInitialState, WagmiProvider, type Config } from 'wagmi'
 9  
10  // Set up queryClient
11  const queryClient = new QueryClient()
12  
13  if (!projectId) {
14      throw new Error('Project ID is not defined')
15  }
16  
17  // Set up metadata
18  const metadata = {
19      name: 'Unk',
20      description: 'Distcom',
21      url: 'https://reown.com/appkit', // origin must match your domain & subdomain
22      icons: ['https://assets.reown.com/reown-profile-pic.png']
23  }
24  
25  // Create the modal
26  const modal = createAppKit({
27      adapters: [wagmiAdapter],
28      projectId,
29      networks: [mainnet, arbitrum, avalanche, base, optimism, polygon],
30      defaultNetwork: mainnet,
31      metadata: metadata,
32      features: {
33          analytics: true, // Optional - defaults to your Cloud configuration
34      }
35  })
36  
37  function ContextProvider({ children, cookies }: { children: ReactNode; cookies: string | null }) {
38      const initialState = cookieToInitialState(wagmiAdapter.wagmiConfig as Config, cookies)
39  
40      return (
41          <WagmiProvider config={wagmiAdapter.wagmiConfig as Config} initialState={initialState}>
42              <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
43          </WagmiProvider>
44      )
45  }
46  
47  export default ContextProvider