import Link from "next/link"; import { Logo } from "@/components/brand/logo"; import { routes } from "@/lib/routes"; export const ATTRIBUTION = "Data: PeeringDB, © OpenStreetMap contributors (ODbL), Wikidata, World Bank, operator, utility, planning and government sources"; // `plain` = served by the API (not a Next route) → plain , no router prefetch. const COLS: Array<{ title: string; links: Array<{ label: string; href: string; plain?: boolean }> }> = [ { title: "Index", links: [ { label: "Map", href: routes.map() }, { label: "Facilities", href: routes.datacenters() }, { label: "Markets", href: routes.markets() }, { label: "Operators", href: routes.operators() }, { label: "Countries", href: routes.countries() }, { label: "Cloud regions", href: routes.cloudRegions() }, { label: "Internet exchanges", href: routes.ixps() }, { label: "Power & grid", href: routes.power() }, { label: "Connectivity", href: routes.connectivity() }, ], }, { title: "Intelligence", links: [ { label: "Live changes", href: routes.live() }, { label: "Pulse", href: routes.pulse() }, { label: "Projects & pipeline", href: routes.projects() }, { label: "AI infrastructure", href: routes.ai() }, { label: "Rankings", href: routes.rankings() }, { label: "Explore", href: routes.explore() }, { label: "Compare operators", href: routes.compareOperators() }, { label: "Time machine", href: routes.timeMachine() }, { label: "Watchlist", href: routes.watchlist() }, ], }, { title: "Reference", links: [ { label: "Methodology", href: routes.methodology() }, { label: "Coverage", href: routes.coverage() }, { label: "Sources", href: routes.sources() }, { label: "Downloads", href: routes.download() }, { label: "API & developers", href: routes.apiDocsPage() }, { label: "API reference", href: routes.apiDocs(), plain: true }, { label: "Crawler policy", href: routes.bot() }, { label: "About", href: routes.about() }, ], }, ]; export function Footer({ compact }: { compact?: boolean }) { if (compact) return null; return ( ); }