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