-
+
- {children}
-
- )
-}
diff --git a/app/w/providers/providers.tsx b/app/w/providers/providers.tsx
new file mode 100644
index 000000000..86bb2e6c9
--- /dev/null
+++ b/app/w/providers/providers.tsx
@@ -0,0 +1,14 @@
+'use client'
+
+import { TooltipProvider } from '@/components/ui/tooltip'
+import { ThemeProvider } from './theme-provider'
+
+export default function Providers({ children }: { children: React.ReactNode }) {
+ return (
+
+
+ {children}
+
+
+ )
+}
diff --git a/app/w/providers/theme-provider.tsx b/app/w/providers/theme-provider.tsx
new file mode 100644
index 000000000..439c6646b
--- /dev/null
+++ b/app/w/providers/theme-provider.tsx
@@ -0,0 +1,16 @@
+'use client'
+
+import { useEffect } from 'react'
+import { useGeneralStore } from '@/stores/settings/general/store'
+
+export function ThemeProvider({ children }: { children: React.ReactNode }) {
+ const theme = useGeneralStore((state) => state.theme)
+
+ useEffect(() => {
+ const root = window.document.documentElement
+ root.classList.remove('light', 'dark')
+ root.classList.add(theme)
+ }, [theme])
+
+ return children
+}
diff --git a/components/ui/command.tsx b/components/ui/command.tsx
index d4798cd95..1c9957fcb 100644
--- a/components/ui/command.tsx
+++ b/components/ui/command.tsx
@@ -30,6 +30,9 @@ import { cn } from '@/lib/utils'
// This file is not typed correctly from shadcn, so we're disabling the type checker
// @ts-nocheck
+// This file is not typed correctly from shadcn, so we're disabling the type checker
+// @ts-nocheck
+
const Command = React.forwardRef<
React.ElementRef,
React.ComponentPropsWithoutRef & {
diff --git a/stores/settings/general/store.ts b/stores/settings/general/store.ts
index c11193b88..e46b8bf2d 100644
--- a/stores/settings/general/store.ts
+++ b/stores/settings/general/store.ts
@@ -4,11 +4,13 @@ import { devtools, persist } from 'zustand/middleware'
interface General {
isAutoConnectEnabled: boolean
isDebugModeEnabled: boolean
+ theme: 'light' | 'dark'
}
interface GeneralActions {
toggleAutoConnect: () => void
toggleDebugMode: () => void
+ setTheme: (theme: 'light' | 'dark') => void
}
type GeneralStore = General & GeneralActions
@@ -19,9 +21,11 @@ export const useGeneralStore = create()(
(set) => ({
isAutoConnectEnabled: true,
isDebugModeEnabled: false,
+ theme: 'light',
toggleAutoConnect: () =>
set((state) => ({ isAutoConnectEnabled: !state.isAutoConnectEnabled })),
toggleDebugMode: () => set((state) => ({ isDebugModeEnabled: !state.isDebugModeEnabled })),
+ setTheme: (theme: 'light' | 'dark') => set({ theme }),
}),
{
name: 'general-settings',