import type { GetServerSideProps, NextPage } from "next"; import Head from "next/head"; import { useSession } from "next-auth/react"; import RoomList from "~/components/RoomList"; import { useEffect, useState } from "react"; import Link from "next/link"; import { FaShieldAlt } from "react-icons/fa"; import { getServerAuthSession } from "~/server/auth"; import { block } from "million/react"; export const getServerSideProps: GetServerSideProps = async (ctx) => { const session = await getServerAuthSession(ctx); // Redirect to login if not signed in if (!session) { return { redirect: { destination: `/api/auth/signin?callbackUrl=${ctx.resolvedUrl}`, permanent: false, }, }; } // Return session if logged in return { props: { session }, }; }; const Home: NextPage = () => { return ( <> Sprint Padawan
); }; export default Home; const HomePageBody: React.FC = block(() => { const { data: sessionData } = useSession(); const [joinRoomTextBox, setJoinRoomTextBox] = useState(""); const [tabIndex, setTabIndex] = useState(); useEffect(() => { const tabIndexLocal = localStorage.getItem(`dashboardTabIndex`); setTabIndex(tabIndexLocal !== null ? Number(tabIndexLocal) : 0); }, [tabIndex, sessionData]); return ( <>

Hi, {sessionData?.user.name}!{" "} {sessionData?.user.role === "ADMIN" && ( )}

{ setTabIndex(0); localStorage.setItem("dashboardTabIndex", "0"); }} > Join a Room { setTabIndex(1); localStorage.setItem("dashboardTabIndex", "1"); }} > Room List
{tabIndex === 0 && ( <> { console.log(event.target.value); setJoinRoomTextBox(event.target.value); }} /> 0 ? `/room/${joinRoomTextBox}` : "/"} className="btn btn-secondary" > Join Room )} {tabIndex === 1 && } ); });