spectation

This commit is contained in:
legop3
2025-11-15 05:04:25 -05:00
parent b242ecf5ac
commit 50c56e7271
14 changed files with 321 additions and 23 deletions
+30
View File
@@ -0,0 +1,30 @@
import { useEffect, useState } from 'react';
import { useSession } from '../context/SessionContext.jsx';
export function useSpectatorMode() {
const { session, setRole, subscribeAll } = useSession();
const [ready, setReady] = useState(false);
useEffect(() => {
let cancelled = false;
async function ensureSpectator() {
try {
if (session?.role !== 'spectator') {
await setRole('spectator');
}
await subscribeAll();
if (!cancelled) {
setReady(true);
}
} catch (err) {
console.error('Failed to enter spectator mode', err);
}
}
ensureSpectator();
return () => {
cancelled = true;
};
}, [session?.role, setRole, subscribeAll]);
return ready;
}