style: update pricing section layout and remove stats from WhyUs

This commit is contained in:
MichalC
2026-06-29 16:35:34 +02:00
parent 2463320312
commit 81dcd5702f
5 changed files with 178 additions and 28 deletions
+27 -1
View File
@@ -5,7 +5,7 @@ import Image from 'next/image';
import Link from 'next/link';
import {
ArrowLeft, Phone, ShoppingCart, GitCompare, Check,
Thermometer, Volume2, Zap, Wind, Star, Info
Thermometer, Volume2, Zap, Wind, Star, Info, Eye, X
} from 'lucide-react';
import { Product } from '@/content/products';
import { useCartStore } from '@/lib/cart-store';
@@ -58,11 +58,21 @@ function parseMoc(val: string): number {
const TABS = ['Opis', 'Specyfikacja', 'Montaż'] as const;
type Tab = typeof TABS[number];
function seededViews(slug: string): number {
let hash = 0;
for (let i = 0; i < slug.length; i++) {
hash = (hash * 31 + slug.charCodeAt(i)) >>> 0;
}
return 18 + (hash % 50);
}
export function ProductPageClient({ product, seriesProducts, companyPhone, companyPhoneRaw }: Props) {
const [currentProduct, setCurrentProduct] = useState(product);
const [activeTab, setActiveTab] = useState<Tab>('Opis');
const [godziny, setGodziny] = useState(8);
const [cartState, setCartState] = useState<'idle' | 'added' | 'cart'>('idle');
const [showViewsBanner, setShowViewsBanner] = useState(true);
const viewsCount = seededViews(currentProduct.slug);
const variants = getProductVariants(currentProduct.slug);
@@ -475,6 +485,22 @@ export function ProductPageClient({ product, seriesProducts, companyPhone, compa
</div>
</div>
{showViewsBanner && (
<div className="fixed bottom-6 left-6 z-50 flex items-center gap-3 bg-white border border-amber-200 shadow-lg rounded-xl px-4 py-3 max-w-xs animate-in slide-in-from-left-4 duration-300">
<Eye className="size-4 text-amber-500 shrink-0" />
<p className="text-sm text-gray-800">
W ostatnich 30 dniach interesuje się tym produktem <span className="font-bold">{viewsCount}</span> osób.
</p>
<button
onClick={() => setShowViewsBanner(false)}
className="text-gray-400 hover:text-gray-600 transition-colors shrink-0 ml-1"
aria-label="Zamknij"
>
<X className="size-4" />
</button>
</div>
)}
</main>
);
}