mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
* wagmi + ethers + web3modal setup * refactor wallet components * fallback providers, more config * kick out useWeb3 * remove all useWeb3 imports * more web3.js usage removal * isAddress utils replacement * restore add token / add network * less accountId changes * web3 legacy tinkering, utils/web3 → utils/wallet * legacy web3 object for ocean.js * graph sync fix, remove custom network switching code * package updates, merge fixes * downgrade to ethers v5 * fix project id * switch to ConnectKit * connectkit theming * add existing chains to wagmi * rewrite getPaymentCollector() * kick out getPaymentCollector completely, use wagmi hooks instead * Revert "kick out getPaymentCollector completely, use wagmi hooks instead" This reverts commit 54c7d1ef1a2dec0b1575a685125ba78336b30f59. * switch getPaymentCollector * calcBaseInGivenDatatokensOut reorg * wip integrate ocean lib 3.0.0 * update orbis components to use wagmi instead of web hooks * more oceanjs integration updates * more refactors * fix build * update ocean lib * fix publish * fix order fixed rate * remove logs * debug and stop infinite cycle orbis connect * fix orbis dm connection * mock use network and fix some more tests * mock wagmi switch network * mock wagmi useProvider createClient and connectKit getDefaultClient * fix jest tests * try storybook fix * cleanups and bump ocean lib * fix order * bump lib to next.5 and add more modal style * bump ocean.js lib to 3.0.0 --------- Co-authored-by: Matthias Kretschmann <m@kretschmann.io>
74 lines
2.4 KiB
TypeScript
74 lines
2.4 KiB
TypeScript
// import App from "next/app";
|
|
import React, { ReactElement, useEffect } from 'react'
|
|
import type { AppProps /*, AppContext */ } from 'next/app'
|
|
import { UserPreferencesProvider } from '@context/UserPreferences'
|
|
import PricesProvider from '@context/Prices'
|
|
import UrqlProvider from '@context/UrqlProvider'
|
|
import ConsentProvider from '@context/CookieConsent'
|
|
import App from '../../src/components/App'
|
|
import { OrbisProvider } from '@context/DirectMessages'
|
|
import '@oceanprotocol/typographies/css/ocean-typo.css'
|
|
import '../stylesGlobal/styles.css'
|
|
import Decimal from 'decimal.js'
|
|
import MarketMetadataProvider from '@context/MarketMetadata'
|
|
import { WagmiConfig } from 'wagmi'
|
|
import { ConnectKitProvider } from 'connectkit'
|
|
import { connectKitTheme, wagmiClient } from '@utils/wallet'
|
|
import posthog from 'posthog-js'
|
|
import { PostHogProvider } from 'posthog-js/react'
|
|
import { useRouter } from 'next/router'
|
|
|
|
// Check that PostHog is client-side (used to handle Next.js SSR)
|
|
if (typeof window !== 'undefined') {
|
|
posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY, {
|
|
api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST || 'https://eu.posthog.com',
|
|
persistence: 'memory'
|
|
})
|
|
}
|
|
|
|
function MyApp({ Component, pageProps }: AppProps): ReactElement {
|
|
Decimal.set({ rounding: 1 })
|
|
const router = useRouter()
|
|
|
|
useEffect(() => {
|
|
// Track page views
|
|
const handleRouteChange = () => posthog?.capture('$pageview')
|
|
router.events.on('routeChangeComplete', handleRouteChange)
|
|
|
|
return () => {
|
|
router.events.off('routeChangeComplete', handleRouteChange)
|
|
}
|
|
}, [router.events])
|
|
|
|
return (
|
|
<>
|
|
<WagmiConfig client={wagmiClient}>
|
|
<ConnectKitProvider
|
|
options={{ initialChainId: 0 }}
|
|
customTheme={connectKitTheme}
|
|
>
|
|
<MarketMetadataProvider>
|
|
<UrqlProvider>
|
|
<UserPreferencesProvider>
|
|
<PricesProvider>
|
|
<ConsentProvider>
|
|
<OrbisProvider>
|
|
<PostHogProvider client={posthog}>
|
|
<App>
|
|
<Component {...pageProps} />
|
|
</App>
|
|
</PostHogProvider>
|
|
</OrbisProvider>
|
|
</ConsentProvider>
|
|
</PricesProvider>
|
|
</UserPreferencesProvider>
|
|
</UrqlProvider>
|
|
</MarketMetadataProvider>
|
|
</ConnectKitProvider>
|
|
</WagmiConfig>
|
|
</>
|
|
)
|
|
}
|
|
|
|
export default MyApp
|