Files
cstb-next/src/app/providers.tsx

25 lines
818 B
TypeScript
Raw Normal View History

"use client"
2025-03-14 19:25:11 +08:00
import { HeroUIProvider, cn } from "@heroui/react"
import { ToastProvider } from "@heroui/toast"
2025-03-14 19:25:11 +08:00
import { platform } from "@tauri-apps/plugin-os"
import { ThemeProvider as NextThemesProvider } from "next-themes"
2025-03-14 19:25:11 +08:00
import { useEffect, useState } from "react"
export default function Providers({ children }: { children: React.ReactNode }) {
2025-03-14 19:25:11 +08:00
const [os, setOs] = useState("windows")
useEffect(() => {
setOs(platform())
}, [])
return (
2025-03-14 19:25:11 +08:00
<HeroUIProvider
className={cn("h-full bg-zinc-100/95 dark:bg-zinc-900/95", os === "macos" && "rounded-lg")}
2025-03-14 19:25:11 +08:00
>
2025-03-12 22:20:06 +08:00
<NextThemesProvider attribute="class" defaultTheme="light">
<ToastProvider toastOffset={10} placement="top-center" toastProps={{ timeout: 3000 }} />
{children}
</NextThemesProvider>
</HeroUIProvider>
)
}