| 24 | theme === "dark" || (theme === "system" && window.matchMedia("(prefers-color-scheme: dark)").matches); |
| 25 | |
| 26 | const renderToggle = () => |
| 27 | isLegacyMode ? ( |
| 28 | <Button variant="outline" size="icon" onClick={() => (theme === "light" ? setTheme("dark") : setTheme("light"))}> |
| 29 | <Sun className="h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" /> |
| 30 | <Moon className="absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" /> |
| 31 | <span className="sr-only">Toggle theme</span> |
| 32 | </Button> |
| 33 | ) : ( |
| 34 | <div className="flex items-center gap-2"> |
| 35 | <Sun className={`h-5 w-5 transition-all duration-300 ${isDarkMode ? "text-primary/50" : "text-blue-600"}`} /> |
| 36 | <Switch checked={isDarkMode} onCheckedChange={(checked) => setTheme(checked ? "dark" : "light")} /> |
| 37 | <Moon className={`h-5 w-5 transition-all duration-300 ${isDarkMode ? "text-blue-600" : "text-primary/50"}`} /> |
| 38 | </div> |
| 39 | ); |
| 40 | |
| 41 | return renderToggle(); |
| 42 | } |