From c4294a81cf6063ff0b20d394010280bd1300ab5c Mon Sep 17 00:00:00 2001 From: MichalC <103170279+wSBMichalee@users.noreply.github.com> Date: Sat, 27 Jun 2026 21:12:23 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20optymalizacja=20GlobalSearch,=20nawigac?= =?UTF-8?q?ji=20oraz=20filtr=C3=B3w=20w=20sklepie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/klimatyzacja/page.tsx | 52 ++- app/layout.tsx | 37 +- app/page.tsx | 131 +++++-- app/pompy-ciepla/page.tsx | 52 ++- app/sitemap.ts | 6 +- app/sklep/[slug]/page.tsx | 130 ++----- app/sklep/page.tsx | 17 +- components/layout/GlobalSearch.tsx | 43 ++- components/layout/Header.tsx | 32 +- components/layout/MobileMenu.tsx | 36 ++ components/sections/BlogPreview.tsx | 2 - components/sections/PostsGrid.tsx | 4 - components/shop/ProductCard.tsx | 33 +- components/shop/ProductPageClient.tsx | 452 +++++++++++++++++++++++++ components/shop/ProductsGrid.tsx | 18 +- components/ui/AnalyticsWrapper.tsx | 50 ++- components/ui/CookieBanner.tsx | 22 +- content/company.ts | 2 +- content/product-variants.ts | 72 ++++ lib/consent-store.ts | 12 +- next.config.ts | 20 +- public/brands/CHV.jpeg | Bin 0 -> 36030 bytes public/brands/CHV.svg | 85 +++++ public/brands/Fuji.png | Bin 0 -> 20499 bytes public/brands/Fuji.svg | 87 +++++ public/brands/LG.png | Bin 0 -> 29959 bytes public/brands/LG.svg | 35 ++ public/brands/Mitsubishi.png | Bin 0 -> 33594 bytes public/brands/Mitsubishi.svg | 100 ++++++ public/brands/aux.png | Bin 0 -> 5680 bytes public/brands/daikin.png | Bin 0 -> 5248 bytes public/brands/daikin.svg | 13 + public/brands/gree.webp | Bin 0 -> 46458 bytes public/brands/haier.jpg | Bin 0 -> 33185 bytes public/brands/haier.svg | 41 +++ public/brands/rotenso.png | Bin 0 -> 87359 bytes public/brands/rotenso.svg | 92 +++++ public/brands/samsung.png | Bin 0 -> 73566 bytes public/brands/samsung.svg | 92 +++++ public/brands/toshiba.jpg | Bin 0 -> 27739 bytes public/brands/toshiba.svg | 46 +++ public/images/products/placeholder.jpg | 0 public/og-image.jpg | 1 + 43 files changed, 1623 insertions(+), 192 deletions(-) create mode 100644 components/shop/ProductPageClient.tsx create mode 100644 content/product-variants.ts create mode 100644 public/brands/CHV.jpeg create mode 100644 public/brands/CHV.svg create mode 100644 public/brands/Fuji.png create mode 100644 public/brands/Fuji.svg create mode 100644 public/brands/LG.png create mode 100644 public/brands/LG.svg create mode 100644 public/brands/Mitsubishi.png create mode 100644 public/brands/Mitsubishi.svg create mode 100644 public/brands/aux.png create mode 100644 public/brands/daikin.png create mode 100644 public/brands/daikin.svg create mode 100644 public/brands/gree.webp create mode 100644 public/brands/haier.jpg create mode 100644 public/brands/haier.svg create mode 100644 public/brands/rotenso.png create mode 100644 public/brands/rotenso.svg create mode 100644 public/brands/samsung.png create mode 100644 public/brands/samsung.svg create mode 100644 public/brands/toshiba.jpg create mode 100644 public/brands/toshiba.svg delete mode 100644 public/images/products/placeholder.jpg create mode 100644 public/og-image.jpg diff --git a/app/klimatyzacja/page.tsx b/app/klimatyzacja/page.tsx index 3aa65a2..c776e02 100644 --- a/app/klimatyzacja/page.tsx +++ b/app/klimatyzacja/page.tsx @@ -22,8 +22,57 @@ export const metadata: Metadata = { }; export default function KlimatyzacjaPage() { + const faqJsonLd = { + "@context": "https://schema.org", + "@type": "FAQPage", + "mainEntity": [ + { + "@type": "Question", + "name": "Ile kosztuje montaż klimatyzacji?", + "acceptedAnswer": { + "@type": "Answer", + "text": "Koszt montażu klimatyzacji split wynosi od 1200 zł netto. Cena zależy od długości instalacji, trudności montażu i wybranego urządzenia. Oferujemy bezpłatną wycenę przed realizacją.", + }, + }, + { + "@type": "Question", + "name": "Jak długo trwa montaż klimatyzacji?", + "acceptedAnswer": { + "@type": "Answer", + "text": "Standardowy montaż klimatyzatora split trwa od 4 do 8 godzin. Systemy multisplit wymagają 1-2 dni roboczych w zależności od liczby jednostek.", + }, + }, + { + "@type": "Question", + "name": "Czy potrzebuję uprawnień F-Gaz do montażu klimatyzacji?", + "acceptedAnswer": { + "@type": "Answer", + "text": "Tak, montaż klimatyzacji zawierającej czynniki F-Gaz (R32, R410A) wymaga certyfikatu F-Gaz. Posiadamy wszystkie wymagane uprawnienia UDT.", + }, + }, + { + "@type": "Question", + "name": "Jak często serwisować klimatyzację?", + "acceptedAnswer": { + "@type": "Answer", + "text": "Zalecamy serwis klimatyzacji 2 razy w roku: przed sezonem letnim (kwiecień-maj) i przed zimowym (wrzesień-październik). Regularny serwis zachowuje gwarancję producenta.", + }, + }, + { + "@type": "Question", + "name": "Czy klimatyzacja może ogrzewać pomieszczenia zimą?", + "acceptedAnswer": { + "@type": "Answer", + "text": "Tak, nowoczesne klimatyzatory inwerterowe to pompy ciepła powietrze-powietrze, które efektywnie ogrzewają nawet przy -20°C na zewnątrz. Koszt ogrzewania klimatyzacją jest 3-4 razy niższy niż ogrzewaniem elektrycznym.", + }, + }, + ], + }; + return ( -
+ <> + + + {/* Microsoft Clarity */} + ); } diff --git a/components/ui/CookieBanner.tsx b/components/ui/CookieBanner.tsx index a0d1153..09109d3 100644 --- a/components/ui/CookieBanner.tsx +++ b/components/ui/CookieBanner.tsx @@ -12,6 +12,7 @@ export function CookieBanner() { analytics, marketing, setConsent, + setAnalyticsConsent, acceptAll, rejectOptional, closeBanner @@ -25,9 +26,20 @@ export function CookieBanner() { const handleSaveSettings = () => { setConsent(localAnalytics, localMarketing); + setAnalyticsConsent(localAnalytics); setShowSettings(false); }; + const handleAcceptAll = () => { + acceptAll(); + setAnalyticsConsent(true); + }; + + const handleRejectOptional = () => { + rejectOptional(); + setAnalyticsConsent(false); + }; + const handleOpenSettings = () => { const hasConsent = localStorage.getItem('thermcool_cookie_consent_v1'); setLocalAnalytics(hasConsent ? analytics : true); @@ -63,13 +75,13 @@ export function CookieBanner() {