'use client' import { useState, useEffect } from 'react'; import { FilamentTable } from '../src/components/FilamentTable'; import { Filament } from '../src/types/filament'; import axios from 'axios'; export default function Home() { const [filaments, setFilaments] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [lastUpdate, setLastUpdate] = useState(null); const [darkMode, setDarkMode] = useState(() => { if (typeof window !== 'undefined') { const saved = localStorage.getItem('darkMode'); return saved ? JSON.parse(saved) : false; } return false; }); useEffect(() => { if (typeof window !== 'undefined') { localStorage.setItem('darkMode', JSON.stringify(darkMode)); if (darkMode) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } } }, [darkMode]); const fetchFilaments = async () => { try { setLoading(true); setError(null); const response = await axios.get('/api/filaments'); setFilaments(response.data); setLastUpdate(new Date()); } catch (err) { setError(err instanceof Error ? err.message : 'Greška pri učitavanju filamenata'); } finally { setLoading(false); } }; useEffect(() => { fetchFilaments(); // Refresh every 5 minutes const interval = setInterval(fetchFilaments, 5 * 60 * 1000); return () => clearInterval(interval); }, []); return (

Filamenteka

{lastUpdate && ( Poslednje ažuriranje: {lastUpdate.toLocaleTimeString('sr-RS')} )}
); }