ModeSwitcher() — ui Function Reference
Architecture documentation for the ModeSwitcher() function in mode-switcher.tsx from the ui codebase.
Entity Profile
Dependency Diagram
graph TD b833505a_0efb_ffef_5488_a6356a350bec["ModeSwitcher()"] 449e9f5f_4c83_3a43_0cf3_5da2cfe0c8e2["mode-switcher.tsx"] b833505a_0efb_ffef_5488_a6356a350bec -->|defined in| 449e9f5f_4c83_3a43_0cf3_5da2cfe0c8e2 style b833505a_0efb_ffef_5488_a6356a350bec fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/v4/components/mode-switcher.tsx lines 18–87
export function ModeSwitcher() {
const { setTheme, resolvedTheme } = useTheme()
const { setMetaColor, metaColor } = useMetaColor()
React.useEffect(() => {
setMetaColor(metaColor)
}, [metaColor, setMetaColor])
const toggleTheme = React.useCallback(() => {
setTheme(resolvedTheme === "dark" ? "light" : "dark")
}, [resolvedTheme, setTheme])
React.useEffect(() => {
const down = (e: KeyboardEvent) => {
if ((e.key === "d" || e.key === "D") && !e.metaKey && !e.ctrlKey) {
if (
(e.target instanceof HTMLElement && e.target.isContentEditable) ||
e.target instanceof HTMLInputElement ||
e.target instanceof HTMLTextAreaElement ||
e.target instanceof HTMLSelectElement
) {
return
}
e.preventDefault()
toggleTheme()
}
}
document.addEventListener("keydown", down)
return () => document.removeEventListener("keydown", down)
}, [toggleTheme])
return (
<Tooltip>
<TooltipTrigger asChild>
<Button
variant="ghost"
size="icon"
className="group/toggle extend-touch-target size-8"
onClick={toggleTheme}
>
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="size-4.5"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" />
<path d="M12 3l0 18" />
<path d="M12 9l4.65 -4.65" />
<path d="M12 14.3l7.37 -7.37" />
<path d="M12 19.6l8.85 -8.85" />
</svg>
<span className="sr-only">Toggle theme</span>
</Button>
</TooltipTrigger>
<TooltipContent className="flex items-center gap-2 pr-1">
Toggle Mode <Kbd>D</Kbd>
</TooltipContent>
</Tooltip>
)
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does ModeSwitcher() do?
ModeSwitcher() is a function in the ui codebase, defined in apps/v4/components/mode-switcher.tsx.
Where is ModeSwitcher() defined?
ModeSwitcher() is defined in apps/v4/components/mode-switcher.tsx at line 18.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free