feat: filtr jednostek multisplit, ostatnio oglądane, sklep pompy ciepła, czyszczenie komentarzy, checkbox zgody

- Filtr 'Ilość jednostek wewn.' w sklepie (1–9 jednostek, checkboxy, liczniki)
- Komponent RecentlyViewedProducts + Zustand store (recently-viewed-store.ts)
- Pompy ciepła dodane do sklepu i nawigacji (Header + MobileMenu)
- Logotypy marek zaktualizowane (Daikin, Panasonic + odświeżone istniejące)
- Checkbox zgody RODO w /zamowienie powiększony (w-5 h-5)
- Usunięcie ~65 zbędnych komentarzy WHAT z 12 plików (build: 0 errors)
- Plik analyze_products.ts (pomocniczy skrypt diagnostyczny)
This commit is contained in:
MichalC
2026-08-02 20:31:55 +02:00
parent 092cff1899
commit c9e4283789
37 changed files with 331 additions and 123 deletions
+15
View File
@@ -211,6 +211,21 @@ export function Header() {
>
Pompy ciepła
</Link>
<NavDropdown
label="Sklep"
triggerHref="/sklep"
sections={[
{
title: "Kategorie produktów",
items: [
{ label: "Klimatyzatory ścienne", href: "/sklep?category=scienne", description: "Jednostki do domu i biura" },
{ label: "Klimatyzatory multisplit", href: "/sklep?category=multisplit", description: "Systemy na kilka pomieszczeń" },
{ label: "Pompy ciepła", href: "/sklep?category=pompy-ciepla", description: "Ekologiczne ogrzewanie" },
]
}
]}
align="left"
/>
<NavDropdown
label="Miasta"
sections={miastaSections}
+27 -4
View File
@@ -53,7 +53,6 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
isOpen ? "pointer-events-auto" : "pointer-events-none"
)}
>
{/* Dark Overlay */}
<div
className={cn(
"absolute inset-0 bg-black/60 transition-opacity duration-300",
@@ -62,14 +61,12 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
onClick={onClose}
/>
{/* Drawer Panel */}
<div
className={cn(
"absolute top-0 right-0 bottom-0 w-full max-w-sm bg-white shadow-xl flex flex-col transition-transform duration-300 ease-in-out",
isOpen ? "translate-x-0" : "translate-x-full"
)}
>
{/* Drawer Header */}
<div className="flex justify-between items-center px-6 py-4 border-b border-border">
<span className="text-xl font-bold font-heading text-primary">
Menu<span className="text-accent">.</span>
@@ -83,7 +80,6 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
</button>
</div>
{/* Drawer Content */}
<div className="flex-1 overflow-y-auto px-6 py-4">
<div className="w-full">
{/* 1. Klimatyzacja */}
@@ -143,6 +139,33 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
</Link>
</div>
{/* Sklep */}
<details className="collapse collapse-arrow border-b border-border rounded-none">
<summary className="collapse-title text-sm font-medium text-primary hover:text-accent py-3 px-0 min-h-0">
Sklep
</summary>
<div className="collapse-content px-0 pb-2">
<ul className="flex flex-col gap-2.5 pl-4 pb-2">
{[
{ label: "Klimatyzatory ścienne", href: "/sklep?category=scienne" },
{ label: "Klimatyzatory multisplit", href: "/sklep?category=multisplit" },
{ label: "Pompy ciepła", href: "/sklep?category=pompy-ciepla" },
].map((item, idx) => (
<li key={idx}>
<Link
href={item.href}
onClick={onClose}
className="text-sm text-text-muted hover:text-accent transition-colors flex items-center justify-between py-1"
>
<span>{item.label}</span>
<ChevronRight className="size-3.5 opacity-60" />
</Link>
</li>
))}
</ul>
</div>
</details>
{/* Nowa sekcja: Miasta */}
<div className="border-b border-border py-3">
<details className="collapse collapse-arrow rounded-none">