@@ -43,10 +43,13 @@ import {
4343 SpaceEvenlyHorizontallyIcon ,
4444 SpaceEvenlyVerticallyIcon ,
4545} from "@radix-ui/react-icons" ;
46+ import { useTheme } from "next-themes" ;
4647import {
4748 DropdownMenuCheckboxItem ,
4849 DropdownMenuContent ,
4950 DropdownMenuItem ,
51+ DropdownMenuRadioGroup ,
52+ DropdownMenuRadioItem ,
5053 DropdownMenuSeparator ,
5154 DropdownMenuShortcut ,
5255 DropdownMenuSub ,
@@ -244,6 +247,7 @@ export function PlaygroundMenuContent({
244247 settingsDialog . openDialog ( ) ;
245248 } }
246249 />
250+ < PreferencesMenuContent />
247251 < DevelopersMenuContent />
248252 < DropdownMenuSeparator />
249253 < Link href = { sitemap . links . github } target = "_blank" >
@@ -588,6 +592,42 @@ function ViewMenuContent({
588592 ) ;
589593}
590594
595+ function PreferencesMenuContent ( ) {
596+ const { theme, setTheme } = useTheme ( ) ;
597+ const resolvedTheme = theme ?? "system" ;
598+
599+ return (
600+ < DropdownMenuSub >
601+ < DropdownMenuSubTrigger className = "text-xs" >
602+ Preferences
603+ </ DropdownMenuSubTrigger >
604+ < DropdownMenuSubContent className = "min-w-40" >
605+ < DropdownMenuSub >
606+ < DropdownMenuSubTrigger className = "text-xs" >
607+ Theme
608+ </ DropdownMenuSubTrigger >
609+ < DropdownMenuSubContent className = "min-w-40" >
610+ < DropdownMenuRadioGroup
611+ value = { resolvedTheme }
612+ onValueChange = { ( value ) => setTheme ( value ) }
613+ >
614+ < DropdownMenuRadioItem value = "light" className = "text-xs" >
615+ Light
616+ </ DropdownMenuRadioItem >
617+ < DropdownMenuRadioItem value = "dark" className = "text-xs" >
618+ Dark
619+ </ DropdownMenuRadioItem >
620+ < DropdownMenuRadioItem value = "system" className = "text-xs" >
621+ System
622+ </ DropdownMenuRadioItem >
623+ </ DropdownMenuRadioGroup >
624+ </ DropdownMenuSubContent >
625+ </ DropdownMenuSub >
626+ </ DropdownMenuSubContent >
627+ </ DropdownMenuSub >
628+ ) ;
629+ }
630+
591631function SettingsMenuContent ( {
592632 onOpenGeneral,
593633 onOpenKeybindings,
0 commit comments