45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import {
|
|
Cloud,
|
|
CloudDrizzle,
|
|
CloudFog,
|
|
CloudLightning,
|
|
CloudMoon,
|
|
CloudRain,
|
|
CloudSnow,
|
|
CloudSun,
|
|
MoonStar,
|
|
Sun,
|
|
} from "lucide-react";
|
|
|
|
export function ForecastIcon({
|
|
code,
|
|
className = "",
|
|
isNight = false,
|
|
}: {
|
|
code: number | null;
|
|
className?: string;
|
|
isNight?: boolean;
|
|
}) {
|
|
const Icon =
|
|
code === 0
|
|
? isNight
|
|
? MoonStar
|
|
: Sun
|
|
: code === 1 || code === 2
|
|
? isNight
|
|
? CloudMoon
|
|
: CloudSun
|
|
: code === 45 || code === 48
|
|
? CloudFog
|
|
: code !== null && code >= 51 && code <= 57
|
|
? CloudDrizzle
|
|
: code !== null && ((code >= 61 && code <= 67) || (code >= 80 && code <= 82))
|
|
? CloudRain
|
|
: code !== null && ((code >= 71 && code <= 77) || code === 85 || code === 86)
|
|
? CloudSnow
|
|
: code !== null && code >= 95
|
|
? CloudLightning
|
|
: Cloud;
|
|
return <Icon className={className} strokeWidth={1.45} />;
|
|
}
|