mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-17 19:16:25 +00:00
Update AppImage
This commit is contained in:
@@ -3,6 +3,7 @@ import type { Metadata } from "next"
|
||||
import { GeistSans } from "geist/font/sans"
|
||||
import { GeistMono } from "geist/font/mono"
|
||||
import { ThemeProvider } from "../components/theme-provider"
|
||||
import { PollingConfigProvider } from "../lib/polling-config"
|
||||
import { Suspense } from "react"
|
||||
import "./globals.css"
|
||||
|
||||
@@ -37,7 +38,7 @@ export default function RootLayout({
|
||||
<body className={`${GeistSans.variable} ${GeistMono.variable} antialiased bg-background text-foreground`}>
|
||||
<Suspense fallback={<div>Loading...</div>}>
|
||||
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
|
||||
{children}
|
||||
<PollingConfigProvider>{children}</PollingConfigProvider>
|
||||
</ThemeProvider>
|
||||
</Suspense>
|
||||
</body>
|
||||
|
||||
@@ -31,6 +31,8 @@ export function PollingConfigProvider({ children }: { children: ReactNode }) {
|
||||
|
||||
// Load from localStorage on mount
|
||||
useEffect(() => {
|
||||
if (typeof window === "undefined") return
|
||||
|
||||
const stored = localStorage.getItem(STORAGE_KEY)
|
||||
if (stored) {
|
||||
try {
|
||||
@@ -45,7 +47,9 @@ export function PollingConfigProvider({ children }: { children: ReactNode }) {
|
||||
const updateInterval = (key: keyof PollingIntervals, value: number) => {
|
||||
setIntervals((prev) => {
|
||||
const newIntervals = { ...prev, [key]: value }
|
||||
localStorage.setItem(STORAGE_KEY, JSON.stringify(newIntervals))
|
||||
if (typeof window !== "undefined") {
|
||||
localStorage.setItem(STORAGE_KEY, JSON.stringify(newIntervals))
|
||||
}
|
||||
return newIntervals
|
||||
})
|
||||
}
|
||||
@@ -56,6 +60,13 @@ export function PollingConfigProvider({ children }: { children: ReactNode }) {
|
||||
export function usePollingConfig() {
|
||||
const context = useContext(PollingConfigContext)
|
||||
if (!context) {
|
||||
// During SSR or when provider is not available, return defaults
|
||||
if (typeof window === "undefined") {
|
||||
return {
|
||||
intervals: DEFAULT_INTERVALS,
|
||||
updateInterval: () => {},
|
||||
}
|
||||
}
|
||||
throw new Error("usePollingConfig must be used within PollingConfigProvider")
|
||||
}
|
||||
return context
|
||||
|
||||
Reference in New Issue
Block a user