summaryrefslogtreecommitdiff
path: root/components/layout/providers.tsx
blob: 1c645531bc600175264d4dc55f4e031b5515a7d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"use client"

import * as React from "react"
import { Provider as JotaiProvider } from "jotai"
import { ThemeProvider as NextThemesProvider } from "next-themes"
import { NuqsAdapter } from "nuqs/adapters/next/app"
import { SessionProvider } from "next-auth/react";
import { CacheProvider } from '@emotion/react';

import { TooltipProvider } from "@/components/ui/tooltip"
import createEmotionCache from './createEmotionCashe';


const cache = createEmotionCache();


export function ThemeProvider({
  children,
  ...props
}: React.ComponentProps<typeof NextThemesProvider>) {
  return (
    <JotaiProvider>
      <CacheProvider value={cache}>

        <NextThemesProvider {...props}>
          <TooltipProvider delayDuration={0}>
            <NuqsAdapter>
              <SessionProvider>
                {children}
              </SessionProvider>
            </NuqsAdapter>
          </TooltipProvider>
        </NextThemesProvider>
      </CacheProvider>

    </JotaiProvider>
  )
}