diff --git a/app/event/[id]/page.tsx b/app/event/[id]/page.tsx index a01d299..d93dbe2 100644 --- a/app/event/[id]/page.tsx +++ b/app/event/[id]/page.tsx @@ -15,6 +15,21 @@ export default function EventPage() { return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; }; + // Function to clear all token and queue state + const clearAllTokenState = () => { + console.log("Clearing all token state"); + setHasAccess(false); + setTokenExpiry(null); + setPosition(null); + setEstimatedWait(null); + try { + localStorage.removeItem("event_token"); + } catch (e) {} + if (socketRef.current) { + socketRef.current.disconnect(); + } + }; + const [connected, setConnected] = useState(false); const [position, setPosition] = useState(null); const [estimatedWait, setEstimatedWait] = useState(null); @@ -106,11 +121,11 @@ export default function EventPage() { }); socket.on("token_expired", () => { - setHasAccess(false); - setTokenExpiry(null); - localStorage.removeItem("event_token"); - // Redirect to homepage - window.location.href = "/"; + console.log("Token expired received from server"); + clearAllTokenState(); + setTimeout(() => { + window.location.href = "/"; + }, 100); }); }) .catch(error => { @@ -123,17 +138,10 @@ export default function EventPage() { }; }, [eventId, loading]); - // Check for existing token on page load + // Check for existing token on page load and clear everything useEffect(() => { - try { - const existingToken = localStorage.getItem("event_token"); - if (existingToken) { - console.log('Found existing token, clearing it'); - localStorage.removeItem("event_token"); - } - } catch (e) { - console.log('localStorage access error:', e); - } + console.log('Page loaded, clearing any existing token state'); + clearAllTokenState(); }, []); // Token expiry timer - ellenőrzés minden másodpercben @@ -144,15 +152,11 @@ export default function EventPage() { const msLeft = tokenExpiry - Date.now(); console.log('Token check - ms left:', msLeft); if (msLeft <= 0) { - console.log('Token expired, redirecting to homepage'); - setHasAccess(false); - setTokenExpiry(null); - localStorage.removeItem("event_token"); - // Disconnect socket and redirect to homepage - if (socketRef.current) { - socketRef.current.disconnect(); - } - window.location.href = "/"; + console.log('Token expired locally, redirecting to homepage'); + clearAllTokenState(); + setTimeout(() => { + window.location.href = "/"; + }, 100); } }, 1000); return () => clearInterval(id);