A very performant and light (2mb in memory) link shortener and tracker. Written in Rust and React and uses Postgres/SQLite.
1import { Moon, Sun } from "lucide-react" 2 3import { Button } from "@/components/ui/button" 4import { 5 DropdownMenu, 6 DropdownMenuContent, 7 DropdownMenuItem, 8 DropdownMenuTrigger, 9} from "@/components/ui/dropdown-menu" 10import { useTheme } from "@/components/theme-provider" 11 12export function ModeToggle() { 13 const { setTheme } = useTheme() 14 15 return ( 16 <DropdownMenu> 17 <DropdownMenuTrigger asChild> 18 <Button variant="outline" size="icon"> 19 <Sun className="h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" /> 20 <Moon className="absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" /> 21 <span className="sr-only">Toggle theme</span> 22 </Button> 23 </DropdownMenuTrigger> 24 <DropdownMenuContent align="end"> 25 <DropdownMenuItem onClick={() => setTheme("light")}> 26 Light 27 </DropdownMenuItem> 28 <DropdownMenuItem onClick={() => setTheme("dark")}> 29 Dark 30 </DropdownMenuItem> 31 <DropdownMenuItem onClick={() => setTheme("system")}> 32 System 33 </DropdownMenuItem> 34 </DropdownMenuContent> 35 </DropdownMenu> 36 ) 37}