diff --git a/app/w/[id]/components/workflow-block/components/action-bar/action-bar.tsx b/app/w/[id]/components/workflow-block/components/action-bar/action-bar.tsx index 44cc09548..61bc7a175 100644 --- a/app/w/[id]/components/workflow-block/components/action-bar/action-bar.tsx +++ b/app/w/[id]/components/workflow-block/components/action-bar/action-bar.tsx @@ -19,7 +19,7 @@ export function ActionBar({ blockId }: ActionBarProps) { ) return ( -
+
{/*
diff --git a/app/w/components/sidebar/components/settings-modal/components/general/general.tsx b/app/w/components/sidebar/components/settings-modal/components/general/general.tsx index dfaf29330..b6b35c9ad 100644 --- a/app/w/components/sidebar/components/settings-modal/components/general/general.tsx +++ b/app/w/components/sidebar/components/settings-modal/components/general/general.tsx @@ -12,6 +12,13 @@ import { } from '@/components/ui/alert-dialog' import { Button } from '@/components/ui/button' import { Label } from '@/components/ui/label' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' import { Switch } from '@/components/ui/switch' import { useGeneralStore } from '@/stores/settings/general/store' import { resetAllStores } from '@/stores' @@ -22,6 +29,8 @@ export function General() { const toggleAutoConnect = useGeneralStore((state) => state.toggleAutoConnect) const isDebugModeEnabled = useGeneralStore((state) => state.isDebugModeEnabled) const toggleDebugMode = useGeneralStore((state) => state.toggleDebugMode) + const theme = useGeneralStore((state) => state.theme) + const setTheme = useGeneralStore((state) => state.setTheme) const handleResetData = () => { resetAllStores() @@ -33,6 +42,20 @@ export function General() {

General Settings

+
+ + +
-
+
- {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',