Spaces:
Running
Running
import type { AppProps } from "next/app"; | |
import Head from "next/head"; | |
import Script from "next/script"; | |
import { Analytics } from "@vercel/analytics/react"; | |
import { Montserrat, Open_Sans } from "next/font/google"; | |
import { IntlProvider } from "react-intl"; | |
import { QueryClient, QueryClientProvider } from "react-query"; | |
import { useRouter } from "next/router"; | |
import { useMemo } from "react"; | |
import "styles/globals.css"; | |
import { Layout } from "components/layout"; | |
import { PremiumContext, usePremiumHook } from "components/premium/premium"; | |
import { PremiumModal } from "components/premium/modal"; | |
import LANGUAGES from "languages"; | |
const queryClient = new QueryClient({ | |
defaultOptions: { | |
queries: { retry: 1, staleTime: 30000, refetchOnWindowFocus: false }, | |
}, | |
}); | |
const montserrat = Montserrat({ | |
variable: "--font-montserrat", | |
subsets: ["latin"], | |
}); | |
const inter = Open_Sans({ | |
variable: "--font-inter", | |
subsets: ["latin"], | |
}); | |
export default function App({ Component, pageProps }: AppProps) { | |
const { locale }: any = useRouter(); | |
const messages = useMemo(() => { | |
switch (locale) { | |
case "en": | |
return LANGUAGES.en; | |
case "hu": | |
return LANGUAGES.hu; | |
case "fr": | |
return LANGUAGES.fr; | |
case "cz": | |
return LANGUAGES.cz; | |
case "uk": | |
return LANGUAGES.uk; | |
case "de": | |
return LANGUAGES.de; | |
case "es": | |
return LANGUAGES.es; | |
case "gr": | |
return LANGUAGES.gr; | |
case "da": | |
return LANGUAGES.da; | |
case "ru": | |
return LANGUAGES.ru; | |
case "tk": | |
return LANGUAGES.tk; | |
case "ch": | |
return LANGUAGES.ch; | |
case "it": | |
return LANGUAGES.it; | |
default: | |
return LANGUAGES.en; | |
} | |
}, [locale]); | |
const premiumHook = usePremiumHook(); | |
return ( | |
<IntlProvider locale={locale} messages={messages} onError={() => null}> | |
<QueryClientProvider client={queryClient}> | |
<Head> | |
<Script | |
id="Adsense-id" | |
data-ad-client="ca-pub-8484207875368959" | |
async={true} | |
strategy="beforeInteractive" | |
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" | |
/> | |
</Script> | |
<Script | |
strategy="afterInteractive" | |
dangerouslySetInnerHTML={{ | |
__html: ` | |
window.dataLayer = window.dataLayer || []; | |
function gtag() { | |
dataLayer.push(arguments); | |
} | |
gtag("js", new Date()); | |
gtag("config", "G-SC2WGRS3MX"); | |
`, | |
}} | |
/> | |
); | |
} | |