import { formatClock } from "@/lib/display"; import { pixelLabel } from "@/lib/styles"; import type { ProviderId, WeatherReport } from "@/lib/weather/types"; const LINK = "text-gold hover:text-gold-bright underline decoration-gold-dim underline-offset-2"; function ProviderCredit({ provider }: { provider: ProviderId }) { switch (provider) { case "openweather": return ( <> Weather data provided by{" "} OpenWeather {" "} ( CC BY-SA 4.0 {" "} /{" "} ODbL ) ); case "openmeteo": return ( <> Weather data by{" "} Open-Meteo.com {" "} ( CC BY 4.0 ) ); case "weatherapi": return ( <> Powered by{" "} WeatherAPI.com ); case "tomorrow": return ( <> Powered by{" "} Tomorrow.io ); } } /** * Visible attribution, safety disclaimer, and privacy disclosure required * across the weather, geocoding, air-quality, alert, and basemap providers. */ export function SiteFooter({ report, activeProvider, hasOpenWeather, }: { report: WeatherReport | null; activeProvider: ProviderId; hasOpenWeather: boolean; }) { const creditedProvider = report?.provider ?? activeProvider; const camsYear = report ? new Date(report.fetchedAt).getUTCFullYear() : null; return ( ); }