auto connects user to session if available #26

Merged
guus merged 1 commits from auto-session into master 2025-08-20 21:55:03 +02:00
2 changed files with 19 additions and 39 deletions
+1 -5
View File
@@ -23,26 +23,22 @@ const pageConfig: Record<
string, string,
{ {
showAuthStatus: boolean; showAuthStatus: boolean;
showSessionChecker: boolean;
showNav: boolean; showNav: boolean;
showQuota: boolean; showQuota: boolean;
} }
> = { > = {
"/nominations": { "/nominations": {
showAuthStatus: true, showAuthStatus: true,
showSessionChecker: false,
showQuota: true, showQuota: true,
showNav: navToggle, showNav: navToggle,
}, },
"/mobile-voting": { "/mobile-voting": {
showAuthStatus: false, showAuthStatus: false,
showSessionChecker: false,
showQuota: false, showQuota: false,
showNav: false, showNav: false,
}, },
"/lobby": { "/lobby": {
showAuthStatus: true, showAuthStatus: true,
showSessionChecker: false,
showQuota: true, showQuota: true,
showNav: navToggle, showNav: navToggle,
}, },
@@ -60,7 +56,7 @@ function LayoutContent({ children }: { children: React.ReactNode }) {
return ( return (
<> <>
{config.showSessionChecker && <SessionChecker />} <SessionChecker />
{config.showAuthStatus && <AuthStatus />} {config.showAuthStatus && <AuthStatus />}
{children} {children}
{config.showNav && <NavigationBar />} {config.showNav && <NavigationBar />}
+18 -34
View File
@@ -11,44 +11,28 @@ import getSessionId from "muzak/data/session";
export default function SessionChecker() { export default function SessionChecker() {
const auth = useAuth(); const auth = useAuth();
const router = useRouter(); const router = useRouter();
const path = usePathname();
const [isSession, setIsSession] = useState(false);
const [link, setLink] = useState("/lobby");
const { sessionId, setSessionId } = useSession(); const { sessionId, setSessionId } = useSession();
// async function getSessions() { async function getSessions() {
// if (!auth.isLoading && !auth.error && auth.isAuthenticated) { if (!auth.isLoading && !auth.error && auth.isAuthenticated) {
// const { data: sessions } = await api?.sessions?.list({}); const { data: sessions } = await api?.sessions?.list({});
// console.log(sessions); console.log(sessions);
// if (sessions?.length > 0) { if (sessions?.length > 0) {
// setIsSession(true); const user = getUser();
// const user = getUser(); setSessionId(sessions[0].session_id);
// setSessionId(sessions[0].session_id); if (sessions[0].host !== user?.profile?.email) {
// if (sessions[0].host === user?.profile?.email) { if (path !== "/mobile-voting") {
// setLink("/lobby"); router.push("/mobile-voting");
// } else { }
// setLink("/session"); }
// } }
// } else { }
// setIsSession(false); }
// }
// }
// }
useEffect(() => { useEffect(() => {
//getSessionId(); getSessions();
console.log("hheufheufh"); }, [auth, path]);
}, [auth]);
if (sessionId) {
return (
<Link
href={link}
className="bold text-l absolute top-2 left-2 rounded-[50%] bg-red-500 p-3 font-bold text-white"
>
Session available!
</Link>
);
}
return <> </>; return <> </>;
} }