Openstatus www.openstatus.dev
at 4c0f4c00a38753a5d0dfd7e7b7b7706dec6f1503 42 lines 1.1 kB view raw
1import { cn } from "@/lib/utils"; 2import { Fly, Koyeb, Railway } from "@openstatus/icons"; 3import { 4 Tooltip, 5 TooltipContent, 6 TooltipProvider, 7 TooltipTrigger, 8} from "@openstatus/ui"; 9import { Globe } from "lucide-react"; 10 11export function IconCloudProvider({ 12 provider, 13 className, 14}: React.ComponentProps<"svg"> & { 15 provider: string; 16}) { 17 switch (provider) { 18 case "fly": 19 return <Fly className={cn("size-4", className)} />; 20 case "koyeb": 21 return <Koyeb className={cn("size-4", className)} />; 22 case "railway": 23 return <Railway className={cn("size-4", className)} />; 24 default: 25 return <Globe className={cn("size-4", className)} />; 26 } 27} 28 29export function IconCloudProviderTooltip( 30 props: React.ComponentProps<typeof IconCloudProvider>, 31) { 32 return ( 33 <TooltipProvider> 34 <Tooltip delayDuration={0}> 35 <TooltipTrigger type="button"> 36 <IconCloudProvider {...props} /> 37 </TooltipTrigger> 38 <TooltipContent className="capitalize">{props.provider}</TooltipContent> 39 </Tooltip> 40 </TooltipProvider> 41 ); 42}