diff --git a/packages/ui/src/makerkit/mode-toggle.tsx b/packages/ui/src/makerkit/mode-toggle.tsx index fef95d680..129742857 100644 --- a/packages/ui/src/makerkit/mode-toggle.tsx +++ b/packages/ui/src/makerkit/mode-toggle.tsx @@ -2,7 +2,7 @@ import { useMemo } from 'react'; -import { CheckCircle, Moon, Sun } from 'lucide-react'; +import { Computer, Moon, Sun } from 'lucide-react'; import { useTheme } from 'next-themes'; import { Button } from '../shadcn/button'; @@ -15,39 +15,49 @@ import { DropdownMenuSubTrigger, DropdownMenuTrigger, } from '../shadcn/dropdown-menu'; -import { If } from './if'; +import { cn } from '../utils'; import { Trans } from './trans'; const MODES = ['light', 'dark', 'system']; export function ModeToggle() { - const { setTheme } = useTheme(); + const { setTheme, theme } = useTheme(); const Items = useMemo(() => { return MODES.map((mode) => { + const isSelected = theme === mode; + return ( { setTheme(mode); setCookeTheme(mode); }} > - + + + + + ); }); - }, [setTheme]); + }, [setTheme, theme]); return ( - + {Items} ); @@ -58,21 +68,25 @@ export function SubMenuModeToggle() { const MenuItems = useMemo( () => - ['light', 'dark', 'system'].map((mode) => { + MODES.map((mode) => { + const isSelected = theme === mode; + return ( { setTheme(mode); setCookeTheme(mode); }} > - + - - - + + + ); }), @@ -83,11 +97,7 @@ export function SubMenuModeToggle() { - {resolvedTheme === 'light' ? ( - - ) : ( - - )} + @@ -103,3 +113,14 @@ export function SubMenuModeToggle() { function setCookeTheme(theme: string) { document.cookie = `theme=${theme}; path=/; max-age=31536000`; } + +function Icon({ theme }: { theme: string | undefined }) { + switch (theme) { + case 'light': + return ; + case 'dark': + return ; + case 'system': + return ; + } +} diff --git a/packages/ui/src/makerkit/sidebar.tsx b/packages/ui/src/makerkit/sidebar.tsx index abb58c8ed..bbd47792a 100644 --- a/packages/ui/src/makerkit/sidebar.tsx +++ b/packages/ui/src/makerkit/sidebar.tsx @@ -16,10 +16,9 @@ import { TooltipProvider, TooltipTrigger, } from '../shadcn/tooltip'; -import { cn } from '../utils'; +import { cn, isRouteActive } from '../utils'; import { SidebarContext } from './context/sidebar.context'; import { If } from './if'; -import isRouteActive from './is-route-active'; import { SidebarConfigSchema } from './sidebar-schema'; import { Trans } from './trans';