Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mastodon
GitHub Repository: mastodon/joinmastodon
Path: blob/main/pages/_app.tsx
1006 views
1
import { useRouter } from "next/router"
2
import Head from "next/head"
3
import { IntlProvider } from "react-intl"
4
import { useEffect } from "react"
5
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
6
import { ReactQueryDevtools } from "@tanstack/react-query-devtools"
7
8
import { getDirForLocale } from "../utils/locales"
9
import "../styles/globals.scss"
10
11
import favicon32 from "../public/favicon-32x32.png"
12
import favicon16 from "../public/favicon-16x16.png"
13
14
function MyApp({ Component, pageProps }) {
15
const { locale, defaultLocale } = useRouter()
16
const dir = getDirForLocale(locale)
17
useEffect(() => {
18
document.documentElement.dir = dir
19
}, [dir])
20
21
const queryClient = new QueryClient()
22
23
return (
24
<IntlProvider
25
locale={locale}
26
defaultLocale={defaultLocale}
27
messages={pageProps.intlMessages}
28
>
29
<QueryClientProvider client={queryClient}>
30
<Head>
31
<link
32
rel="icon"
33
type="image/png"
34
sizes="32x32"
35
href={favicon32.src}
36
/>
37
<link
38
rel="icon"
39
type="image/png"
40
sizes="16x16"
41
href={favicon16.src}
42
/>
43
</Head>
44
<Component {...pageProps} />
45
<ReactQueryDevtools initialIsOpen={false} />
46
</QueryClientProvider>
47
</IntlProvider>
48
)
49
}
50
51
export default MyApp
52
53