'use client' import { useState, useEffect, useRef } from 'react'; import { FilamentTableV2 } from '../src/components/FilamentTableV2'; import { Filament } from '../src/types/filament'; import { filamentService } from '../src/services/api'; export default function Home() { const [filaments, setFilaments] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [darkMode, setDarkMode] = useState(false); const [mounted, setMounted] = useState(false); const [resetKey, setResetKey] = useState(0); // Removed V1/V2 toggle - now only using V2 // Initialize dark mode from localStorage after mounting useEffect(() => { setMounted(true); const saved = localStorage.getItem('darkMode'); if (saved) { setDarkMode(JSON.parse(saved)); } }, []); // Update dark mode useEffect(() => { if (!mounted) return; localStorage.setItem('darkMode', JSON.stringify(darkMode)); if (darkMode) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } }, [darkMode, mounted]); const fetchFilaments = async () => { try { setLoading(true); setError(null); const filaments = await filamentService.getAll(); setFilaments(filaments); } catch (err) { console.error('API Error:', err); setError(err instanceof Error ? err.message : 'Greška pri učitavanju filamenata'); } finally { setLoading(false); } }; useEffect(() => { fetchFilaments(); }, []); const handleLogoClick = () => { setResetKey(prev => prev + 1); window.scrollTo({ top: 0, behavior: 'smooth' }); }; return (
Kupovina po gramu dostupna Popust za 5+ komada
{mounted && ( )}
); }