import { Notification } from "@strata-foundation/react"; import { ChatProviders } from "../src/components/ChatProviders"; import { Wallet } from "../src/components/Wallet"; import { IS_PRODUCTION } from "../src/constants/globals"; import { useMediaQuery } from "@chakra-ui/react"; import { WalletModalProvider } from "@solana/wallet-adapter-react-ui"; import { AppProps } from "next/app"; import { useRouter } from "next/router"; import Head from "next/head"; import { DefaultSeo } from "next-seo"; import React, { useEffect } from "react"; import toast, { Toaster } from "react-hot-toast"; import { pageview } from "../src/utils/gtag"; import SEO from "../next-seo.config"; require("./app.css"); require("@solana/wallet-adapter-react-ui/styles.css"); function MyApp({ Component, pageProps }: AppProps) { const router = useRouter(); useEffect(() => { const handleRouteChange = (url: URL) => { /* invoke analytics function only for production */ if (IS_PRODUCTION) pageview(url); }; router.events.on("routeChangeComplete", handleRouteChange); return () => { router.events.off("routeChangeComplete", handleRouteChange); }; }, [router.events]); const onError = React.useCallback( (error: Error) => { console.error(error); if ( error.message?.includes( "Attempt to debit an account but found no record of a prior credit." ) ) { error = new Error("Not enough SOL to perform this action"); } const code = (error.message?.match("custom program error: (.*)") || [])[1]; if (code == "0x1") { error = new Error("Insufficient balance."); } else if (code === "0x0") { error = new Error("Blockhash expired. Please retry"); } toast.custom((t) => ( toast.dismiss(t.id)} /> )); }, [toast] ); const [isMobile] = useMediaQuery("(max-width: 680px)"); return ( <> {isMobile ? ( ) : ( )} ); } export default MyApp;