import { useState, useEffect } from 'react'; const SEEN_KEY = 'tippspiel_seen_results'; function getSeenIds() { try { return new Set(JSON.parse(localStorage.getItem(SEEN_KEY) || '[]')); } catch { return new Set(); } } function markSeen(matchId) { const seen = getSeenIds(); seen.add(matchId); localStorage.setItem(SEEN_KEY, JSON.stringify([...seen])); } export function useRevealQueue(matches) { const [queue, setQueue] = useState([]); useEffect(() => { const seen = getSeenIds(); const unseen = matches.filter(m => m.status === 'FINISHED' && m.userTip && m.userTip.points !== null && !seen.has(m.id)); setQueue(unseen); }, [matches]); function dismissCurrent() { if (queue.length === 0) return; markSeen(queue[0].id); setQueue(q => q.slice(1)); } return { current: queue[0] || null, remaining: queue.length, dismissCurrent }; }