'use client' import { useState, useEffect } from 'react'; import Link from 'next/link'; import { SiteHeader } from '@/src/components/layout/SiteHeader'; import { SiteFooter } from '@/src/components/layout/SiteFooter'; import { SaleCountdown } from '@/src/components/SaleCountdown'; import ColorRequestModal from '@/src/components/ColorRequestModal'; import { CategoryIcon } from '@/src/components/ui/CategoryIcon'; import { getEnabledCategories } from '@/src/config/categories'; import { filamentService } from '@/src/services/api'; import { Filament } from '@/src/types/filament'; import { trackEvent } from '@/src/components/MatomoAnalytics'; const KP_URL = 'https://www.kupujemprodajem.com/kompjuteri-desktop/3d-stampaci-i-oprema/originalni-bambu-lab-filamenti-na-stanju/oglas/182256246'; export default function Home() { const [filaments, setFilaments] = useState([]); const [showColorRequestModal, setShowColorRequestModal] = useState(false); const [mounted, setMounted] = useState(false); const categories = getEnabledCategories(); useEffect(() => { setMounted(true); }, []); useEffect(() => { const fetchFilaments = async () => { try { const data = await filamentService.getAll(); setFilaments(data); } catch (err) { console.error('Failed to fetch filaments for sale check:', err); } }; fetchFilaments(); }, []); const activeSaleFilaments = filaments.filter(f => f.sale_active === true); const hasActiveSale = activeSaleFilaments.length > 0; const maxSalePercentage = hasActiveSale ? Math.max(...activeSaleFilaments.map(f => f.sale_percentage || 0), 0) : 0; const saleEndDate = (() => { const withEndDate = activeSaleFilaments.filter(f => f.sale_end_date); if (withEndDate.length === 0) return null; return withEndDate.reduce((latest, current) => { if (!latest.sale_end_date) return current; if (!current.sale_end_date) return latest; return new Date(current.sale_end_date) > new Date(latest.sale_end_date) ? current : latest; }).sale_end_date ?? null; })(); return (
{/* ═══ HERO ═══ */}
{/* Rich multi-layer gradient background */}
{/* Floating color orbs — big, bright, energetic */}
{/* Sale Banner */} {/* ═══ CATEGORIES ═══ */}

Sta nudimo

Kompletna ponuda originalne Bambu Lab opreme

{categories.map((cat, i) => { // First card (filamenti) is featured — spans 2 cols on lg const isFeatured = i === 0; // Last card spans 2 cols on sm/lg for variety const isWide = i === categories.length - 1; return ( trackEvent('Navigation', 'Category Click', cat.label)} className={`category-card group block rounded-2xl reveal-up reveal-delay-${i + 1} ${ isFeatured ? 'lg:col-span-2 lg:row-span-2' : '' } ${isWide ? 'sm:col-span-2 lg:col-span-1' : ''}`} style={{ background: `linear-gradient(135deg, ${cat.colorHex}, ${cat.colorHex}cc)`, boxShadow: `0 8px 32px -8px ${cat.colorHex}35`, }} >
{/* SVG Icon */}

{cat.label}

{cat.description}

Pogledaj ponudu
); })}
{/* ═══ INFO CARDS ═══ */}
{/* Reusable Spool Price */}

Visekratna spulna

Cena visekratne spulne: 499 RSD

{/* Selling by Grams */}

Prodaja na grame

Idealno za testiranje materijala ili manje projekte.

{[ { g: '50g', price: '299' }, { g: '100g', price: '499' }, { g: '200g', price: '949' }, ].map(({ g, price }) => ( {g} — {price} RSD ))}
{/* ═══ DISCLAIMER ═══ */}

Ovo je privatna prodaja fizickog lica. Filamenteka nije registrovana prodavnica. Sva kupovina se odvija preko KupujemProdajem platforme.

{/* ═══ CONTACT CTA ═══ */}

Zainteresovani?

Pogledajte ponudu na KupujemProdajem ili nas kontaktirajte direktno.

{/* Color Request */}
setShowColorRequestModal(false)} />
); }