import { Metadata } from 'next'; import { JsonLd } from '@/components/ui/JsonLd'; import { notFound } from 'next/navigation'; import Link from 'next/link'; import { Clock, Phone, ArrowRight } from 'lucide-react'; import { getCityBySlug, getAllCitySlugs, dolnySlaskCities } from '@/content/cities'; import { HeroSection } from '@/components/sections/HeroSection'; import { ProcessSteps } from '@/components/sections/ProcessSteps'; import { PricingTable } from '@/components/sections/PricingTable'; import { WhyUs } from '@/components/sections/WhyUs'; import { FaqAccordion } from '@/components/sections/FaqAccordion'; import { CtaBanner } from '@/components/sections/CtaBanner'; import { Testimonials } from '@/components/sections/Testimonials'; import { acProcessSteps } from '@/content/process'; import { companyDetails } from '@/content/company'; interface Props { params: Promise<{ miasto: string }>; } export async function generateStaticParams() { return getAllCitySlugs().map((c) => ({ miasto: c.slug })); } export async function generateMetadata({ params }: Props): Promise { const { miasto } = await params; const city = getCityBySlug(miasto); if (!city) return { title: 'Nie znaleziono' }; return { title: city.seoTitle, description: city.seoDescription, alternates: { canonical: `/klimatyzacja/${city.slug}` }, openGraph: { title: city.seoTitle, description: city.seoDescription, }, }; } export default async function MiastoPage({ params }: Props) { const { miasto } = await params; const city = getCityBySlug(miasto); if (!city) notFound(); const otherCities = dolnySlaskCities.filter((c) => c.slug !== city.slug); const jsonLd = { "@context": "https://schema.org", "@type": "LocalBusiness", "name": companyDetails.name, "telephone": companyDetails.phone, "email": companyDetails.email, "url": `${process.env.NEXT_PUBLIC_BASE_URL || 'https://thermcool.pl'}/klimatyzacja/${city.slug}`, "address": { "@type": "PostalAddress", "streetAddress": companyDetails.address.street, "addressLocality": companyDetails.address.city, "postalCode": companyDetails.address.zipCode, "addressCountry": "PL", }, "areaServed": { "@type": "City", "name": city.name }, "priceRange": "$$", }; return (
{/* HERO */} {/* INTRO + FAKTY LOKALNE */}
Klimatyzacja {city.name}

Profesjonalny montaż klimatyzacji {city.przyimek} {city.nameDopelniacz}

{city.introText}

{city.localFacts}

{/* Highlights */}

Czas montażu

Standardowy montaż split {city.przyimek} {city.nameDopelniacz} trwa 4–8 godzin. Multisplit — 1–2 dni robocze.

Bezpłatna wycena

Zadzwoń lub napisz — wyceniamy bezpłatnie, bez zobowiązań. Odpowiadamy w ciągu godziny.

{companyDetails.phone}
{/* HIGHLIGHT KLIMATYZACJI */}

{city.acHighlight}

{/* PROCES MONTAŻU */} {/* CENNIK */} {/* POMPY CIEPŁA CTA */} {/*
Pompy ciepła {city.name}

Pompa ciepła {city.przyimek} {city.nameDopelniacz}

{city.heatPumpTeaser}

Dowiedz się więcej o pompach ciepła
{[ { label: 'Oszczędność', value: 'do 60%', sub: 'niższe koszty ogrzewania' }, { label: 'Sprawność', value: 'COP 4–5', sub: 'na każdy 1 kW energii' }, { label: 'Gwarancja', value: '5 lat', sub: 'na urządzenie i montaż' }, ].map((item, idx) => (

{item.label}

{item.value}

{item.sub}

))}
*/} {/* DLACZEGO MY */} {/* OPINIE */} {/* FAQ */} {/* INNE MIASTA */}
Zasięg działania

Klimatyzacja na Dolnym Śląsku — inne miasta

{otherCities.map((c) => ( Klimatyzacja {c.name} ))}
{city.slug === 'wroclaw' && (

Dzielnice Wrocławia

{['wroclaw-krzyki', 'wroclaw-fabryczna', 'wroclaw-psie-pole', 'wroclaw-srodmiescie', 'wroclaw-stare-miasto', 'wroclaw-jagodno', 'wroclaw-gaj', 'wroclaw-maslice', 'wroclaw-oltaszyn', 'wroclaw-wojszyce', 'wroclaw-muchobor-wielki', 'wroclaw-lesnica', 'wroclaw-pracze-odrzanskie', 'wroclaw-nowy-dwor', 'wroclaw-kowale'].map((slug) => { const name = slug.replace('wroclaw-', '').replace(/-/g, ' '); return ( {name.charAt(0).toUpperCase() + name.slice(1)} ); })}
)}
{/* KOŃCOWE CTA */}
); }