This commit is contained in:
MichalC
2026-08-25 23:51:18 +02:00
parent 1eaf90ebbf
commit e98a903e28
19 changed files with 381 additions and 260 deletions
+5 -10
View File
@@ -1,5 +1,5 @@
import { Metadata } from 'next';
import { HeroSection } from '@/components/sections/HeroSection';
import { PageHeader } from '@/components/layout/PageHeader';
import { PostsGrid } from '@/components/sections/PostsGrid';
import { CtaBanner } from '@/components/sections/CtaBanner';
import { getPosts, getFeaturedPost } from '@/content/posts';
@@ -23,15 +23,10 @@ export default function BlogPage() {
return (
<main>
<HeroSection
title="Blog i poradniki"
subtitle="Dzielimy się naszą wiedzą i doświadczeniem. Zobacz, jak dbać o domowe instalacje, na co uważać podczas remontu i jak uzyskać dofinansowanie."
ctaText="Skontaktuj się z nami"
ctaLink="/kontakt"
secondaryCtaText="Nasze usługi"
secondaryCtaLink="/uslugi-domowe"
backgroundImage="/images/hero/hero-section-image.webp"
<PageHeader
title="Baza Wiedzy"
subtitle="Poradniki, nowości i ekspercka wiedza na temat klimatyzacji."
breadcrumbs={[{ label: 'Blog', href: '/blog' }]}
/>
<section className="py-16 md:py-24 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
+3 -14
View File
@@ -1,6 +1,6 @@
import { Metadata } from 'next';
import { JsonLd } from '@/components/ui/JsonLd';
import { HeroSection } from '@/components/sections/HeroSection';
import { PageHeader } from '@/components/layout/PageHeader';
import { InfoHighlights } from '@/components/sections/InfoHighlights';
import { AcTypesSection } from '@/components/sections/AcTypesSection';
import { ProcessSteps } from '@/components/sections/ProcessSteps';
@@ -74,21 +74,10 @@ export default function KlimatyzacjaPage() {
<>
<JsonLd data={faqJsonLd} />
<main>
<HeroSection
<PageHeader
title="Montaż klimatyzacji — dobór, instalacja, serwis"
subtitle="Zapewnij sobie idealny klimat w domu i biurze. Oferujemy kompleksowe usługi od bezpłatnego audytu po montaż i opiekę serwisową."
ctaText="Dobierz klimatyzator"
ctaLink="/sklep"
secondaryCtaText="Sprawdź cennik"
secondaryCtaLink="#cennik"
backgroundImage="/images/services/montaz.webp"
features={[
'Bezpłatny audyt',
'Estetyczny montaż',
'Zgodność z F-gaz',
'Serwis gwarancyjny'
]}
breadcrumbs={[{ label: 'App', href: '/app' }]}
/>
<InfoHighlights
+3 -8
View File
@@ -1,5 +1,5 @@
import { Metadata } from 'next';
import { HeroSection } from '@/components/sections/HeroSection';
import { PageHeader } from '@/components/layout/PageHeader';
import { ContactSection } from '@/components/sections/ContactSection';
import { companyDetails } from '@/content/company';
@@ -15,15 +15,10 @@ export const metadata: Metadata = {
export default function KontaktPage() {
return (
<main>
<HeroSection
<PageHeader
title="Jesteśmy do Twojej dyspozycji"
subtitle="Zastanawiasz się nad montażem klimatyzacji ? Potrzebujesz serwisu? Napisz lub zadzwoń — odpowiemy szybko i bezpłatnie."
ctaText="Zadzwoń do nas"
ctaLink={`tel:${companyDetails.phoneRaw}`}
secondaryCtaText="Napisz maila"
secondaryCtaLink={`mailto:${companyDetails.email}`}
backgroundImage="/images/hero/hero-section-image.webp"
breadcrumbs={[{ label: 'App', href: '/app' }]}
/>
<ContactSection />
+4 -6
View File
@@ -204,12 +204,10 @@ export default function MontazKlimatyzacjiPage() {
</div>
))}
</div>
<div className="mt-6 text-center">
<Link href="/kontakt" className="inline-flex items-center gap-2 px-6 py-3 bg-accent text-white font-bold rounded-xl text-sm hover:bg-accent/90 transition-colors">
Zapytaj o bezpłatną wycenę <ArrowRight className="size-4" />
</Link>
<div className="flex flex-col sm:flex-row gap-4 justify-center mt-12 animate-fade-in-up" style={{ animationDelay: '0.4s' }}>
<Link href="/kontakt" className={buttonClasses({ variant: 'primary', size: 'lg' })}>
Darmowa wycena <ArrowRight className="size-4" />
</Link>
</div>
</div>
</section>
+4 -9
View File
@@ -1,5 +1,5 @@
import { Metadata } from 'next';
import { HeroSection } from '@/components/sections/HeroSection';
import { PageHeader } from '@/components/layout/PageHeader';
import { AboutStory } from '@/components/sections/AboutStory';
import { ValuesGrid } from '@/components/sections/ValuesGrid';
import { CtaBanner } from '@/components/sections/CtaBanner';
@@ -16,15 +16,10 @@ export const metadata: Metadata = {
export default function ONasPage() {
return (
<main>
<HeroSection
title={`O firmie ${companyDetails.shortName}`}
<PageHeader
title="Jesteśmy zgranym zespołem inżynierów, instalatorów i serwisantów. Od lat dostarczamy sprawdzone rozwiązania z zakresu klimatyzacji, ogrzewania i wykończeń."
subtitle="Jesteśmy zgranym zespołem inżynierów, instalatorów i serwisantów. Od lat dostarczamy sprawdzone rozwiązania z zakresu klimatyzacji, ogrzewania i wykończeń."
ctaText="Skontaktuj się z nami"
ctaLink="/kontakt"
secondaryCtaText="Nasze realizacje"
secondaryCtaLink="/realizacje"
backgroundImage="/images/about/about-story.webp"
breadcrumbs={[{ label: 'App', href: '/app' }]}
/>
<AboutStory />
+14 -16
View File
@@ -1,6 +1,6 @@
import { HeroSection } from "@/components/sections/HeroSection";
import { CalculatorTeaser } from "@/components/sections/CalculatorTeaser";
import { ServicesGrid } from "@/components/sections/ServicesGrid";
import { WhyUs } from "@/components/sections/WhyUs";
import { FeaturedProducts } from "@/components/sections/FeaturedProducts";
import { BlogPreview } from "@/components/sections/BlogPreview";
import { CtaBanner } from "@/components/sections/CtaBanner";
@@ -130,16 +130,10 @@ export default function Home() {
<JsonLd data={jsonLd} />
<HeroSection />
<ServicesGrid />
<CalculatorTeaser />
{/* BrandsBar will go here in Group B */}
<FeaturedProducts />
<WhyUs />
{/* ProjectsSection will go here in Group B */}
{/* <Testimonials /> (Ukryte na czas zbierania autentycznych opinii) */}
<BlogPreview />
<section className="bg-white py-16 px-4">
<div className="bg-slate-50 max-w-7xl mx-auto rounded-[2.5rem] p-6 sm:p-10 lg:p-14">
<div className="max-w-7xl mx-auto flex flex-col gap-8">
@@ -241,14 +235,12 @@ export default function Home() {
<p className="text-sm text-text-muted leading-relaxed">Nasi certyfikowani technicy są dostępni od poniedziałku do soboty. Zarezerwuj termin już dziś, aby uniknąć kolejek w sezonie.</p>
</div>
<div className="flex flex-col sm:flex-row items-center gap-4 shrink-0 w-full lg:w-auto justify-center lg:justify-end">
<Link href="/kontakt" className="w-fit sm:w-auto flex justify-center items-center gap-2 px-6 py-3.5 bg-accent text-white font-bold text-sm hover:bg-accent/90 transition-colors rounded-xl">
Umów serwis <Calendar className="size-4" />
<Link href="/kontakt" className={buttonClasses({ variant: 'primary', size: 'lg' })}>
Umów darmową wycenę <ArrowRight className="size-4" />
</Link>
<Link href="/cennik-montazu" className={buttonClasses({ variant: 'outline', size: 'lg' })}>
Zobacz pełny cennik <ArrowRight className="size-4" />
</Link>
<a href={`tel:${companyDetails.phoneRaw}`} className="w-fit sm:w-auto">
<button className="w-fit sm:w-auto flex justify-center items-center gap-2 px-6 py-3.5 bg-white text-primary border border-border font-bold text-sm hover:bg-slate-50 transition-colors rounded-xl">
<Phone className="size-4" /> Zadzwoń do nas
</button>
</a>
</div>
</div>
@@ -257,6 +249,12 @@ export default function Home() {
</div>
</section>
<ServicesGrid />
{/* ProjectsSection will go here in Group B */}
{/* <Testimonials /> (Ukryte na czas zbierania autentycznych opinii) */}
<BlogPreview />
<CtaBanner bgVariant="accent-light" />
</>
);
+3 -8
View File
@@ -1,5 +1,5 @@
import { Metadata } from 'next';
import { HeroSection } from '@/components/sections/HeroSection';
import { PageHeader } from '@/components/layout/PageHeader';
import { ProjectsGrid } from '@/components/sections/ProjectsGrid';
import { StatsBar } from '@/components/sections/StatsBar';
import { CtaBanner } from '@/components/sections/CtaBanner';
@@ -19,15 +19,10 @@ export const metadata: Metadata = {
export default function RealizacjePage() {
return (
<main>
<HeroSection
<PageHeader
title="Nasze realizacje"
subtitle="Zobacz wybrane projekty, które zrealizowaliśmy dla naszych klientów. Każde zlecenie traktujemy indywidualnie, dbając o najwyższą jakość wykonania."
ctaText="Zobacz ofertę"
ctaLink="/uslugi-domowe"
secondaryCtaText="Skontaktuj się"
secondaryCtaLink="/kontakt"
backgroundImage="/images/hero/hero-section-image.webp"
breadcrumbs={[{ label: 'App', href: '/app' }]}
/>
<ProjectsGrid />
+4 -9
View File
@@ -1,7 +1,7 @@
import { Metadata } from 'next';
import { getProducts, getBrands } from '@/content/products';
import { ProductsGrid } from '@/components/shop/ProductsGrid';
import { HeroSection } from '@/components/sections/HeroSection';
import { PageHeader } from '@/components/layout/PageHeader';
export const metadata: Metadata = {
title: 'Sklep z klimatyzatorami',
@@ -17,15 +17,10 @@ export default function ShopPage() {
return (
<main>
<HeroSection
<PageHeader
title="Klimatyzatory split i multisplit"
subtitle={`${splitCount} klimatyzatorów split i ${multiCount} jednostek multisplit. Gree, Rotenso, Haier, Daikin, LG, Samsung i inne marki. Z montażem lub bez.`}
ctaText="Zapytaj o montaż"
ctaLink="/kontakt"
secondaryCtaText=""
secondaryCtaLink=""
backgroundImage="/images/hero/shop-section-image.webp"
subtitle=""
breadcrumbs={[{ label: 'App', href: '/app' }]}
/>
<ProductsGrid products={products} brands={brands} />
</main>