diff --git a/components/Navigation/DesktopSidebar.tsx b/components/Navigation/DesktopSidebar.tsx index 1328a64..6742333 100644 --- a/components/Navigation/DesktopSidebar.tsx +++ b/components/Navigation/DesktopSidebar.tsx @@ -13,7 +13,6 @@ import { IconMessageCircle, IconEdit, IconChartBubbleFilled } from '@tabler/icon import { useSelector } from '@xstate/react'; import { useAppMachine } from '@/hooks/useAppMachine'; import { UserMenu } from '@/components/UserMenu'; -import { ThemeToggle } from '@/components/ThemeToggle'; import styles from './DesktopSidebar.module.css'; export function DesktopSidebar() { @@ -106,10 +105,7 @@ export function DesktopSidebar() { - {/* Theme Toggle */} - - - {/* User Menu - styled like other nav items */} + {/* User Menu - styled like other nav items, now includes theme toggle */} {/* Development state panel */} diff --git a/components/UserMenu.tsx b/components/UserMenu.tsx index ae23231..c8900ab 100644 --- a/components/UserMenu.tsx +++ b/components/UserMenu.tsx @@ -1,7 +1,9 @@ 'use client'; import { useState, useEffect } from 'react'; -import { Menu, Avatar, NavLink, ActionIcon } from '@mantine/core'; +import { Menu, Avatar, NavLink, ActionIcon, SegmentedControl, Text } from '@mantine/core'; +import { useMantineColorScheme } from '@mantine/core'; +import { IconSun, IconMoon, IconDeviceDesktop } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; interface UserProfile { @@ -13,6 +15,7 @@ interface UserProfile { export function UserMenu({ showLabel = false }: { showLabel?: boolean } = {}) { const router = useRouter(); + const { colorScheme, setColorScheme } = useMantineColorScheme(); const [profile, setProfile] = useState(null); const [loading, setLoading] = useState(true); @@ -129,6 +132,47 @@ export function UserMenu({ showLabel = false }: { showLabel?: boolean } = {}) { @{profile.handle} + + + {/* Theme Selection */} +
+ + Theme + + setColorScheme(value as 'light' | 'dark' | 'auto')} + data={[ + { + value: 'light', + label: ( +
+ +
+ ), + }, + { + value: 'dark', + label: ( +
+ +
+ ), + }, + { + value: 'auto', + label: ( +
+ +
+ ), + }, + ]} + fullWidth + size="xs" + /> +
+ Log out