diff --git a/src/pages/room/[id].tsx b/src/pages/room/[id].tsx index 2d8794c..0787cbb 100644 --- a/src/pages/room/[id].tsx +++ b/src/pages/room/[id].tsx @@ -26,6 +26,7 @@ import { RiVipCrownFill } from "react-icons/ri"; import { env } from "~/env.mjs"; import { downloadCSV } from "~/utils/helpers"; import type { PresenceItem } from "~/utils/types"; +import { Session } from "next-auth"; export const getServerSideProps: GetServerSideProps = async (ctx) => { const session = await getServerAuthSession(ctx); @@ -46,7 +47,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { }; }; -const Room: NextPage = () => { +const Room: NextPage<{ session: Session }> = ({ session }) => { return ( <> @@ -55,7 +56,7 @@ const Room: NextPage = () => {
- +
); @@ -63,8 +64,7 @@ const Room: NextPage = () => { export default Room; -const RoomBody: React.FC = () => { - const { data: sessionData } = useSession(); +const RoomBody: React.FC<{ session: Session }> = ({ session }) => { const { query } = useRouter(); const roomId = z.string().parse(query.id); @@ -83,7 +83,7 @@ const RoomBody: React.FC = () => { configureAbly({ key: env.NEXT_PUBLIC_ABLY_PUBLIC_KEY, - clientId: sessionData?.user.id, + clientId: session.user.id, recover: (_, cb) => { cb(true); }, @@ -106,10 +106,10 @@ const RoomBody: React.FC = () => { const [presenceData] = usePresence( `${env.NEXT_PUBLIC_APP_ENV}-${roomId}`, { - name: sessionData?.user.name || "", - image: sessionData?.user.image || "", - client_id: sessionData?.user.id || "", - role: sessionData?.user.role || "USER", + name: session.user.name || "", + image: session.user.image || "", + client_id: session.user.id || "", + role: session.user.role || "USER", } ); @@ -126,18 +126,18 @@ const RoomBody: React.FC = () => { // Init story name useEffect(() => { - if (sessionData && roomFromDb) { + if (session && roomFromDb) { setStoryNameText(roomFromDb.storyName || ""); setRoomScale(roomFromDb.scale || "ERROR"); } - }, [roomFromDb, roomId, sessionData]); + }, [roomFromDb, roomId, session]); // Helper functions const getVoteForCurrentUser = () => { - if (roomFromDb && sessionData) { + if (roomFromDb && session) { return ( votesFromDb && - votesFromDb.find((vote) => vote.userId === sessionData.user.id) + votesFromDb.find((vote) => vote.userId === session.user.id) ); } else { return null; @@ -224,7 +224,7 @@ const RoomBody: React.FC = () => { if (visible) { if (!!matchedVote) { - return

{ matchedVote.value }

; + return

{matchedVote.value}

; } else { return ; } @@ -243,39 +243,39 @@ const RoomBody: React.FC = () => { if (roomFromDb === undefined) { return (
- { " " } + {" "}
); // Room has been loaded } else if (roomFromDb) { return ( -
{ roomFromDb.roomName }
+
{roomFromDb.roomName}
ID:
-
{ roomFromDb.id }
+
{roomFromDb.id}
- { roomFromDb && ( + {roomFromDb && (

- Story: { roomFromDb.storyName } + Story: {roomFromDb.storyName}

    - { presenceData && + {presenceData && presenceData .filter( (value, index, self) => @@ -288,176 +288,174 @@ const RoomBody: React.FC = () => { .map((presenceItem) => { return (
  • {

    - { presenceItem.data.name }{ " " } - { presenceItem.data.role === "ADMIN" && ( + {presenceItem.data.name}{" "} + {presenceItem.data.role === "ADMIN" && (

    - ) }{ " " } - { presenceItem.clientId === roomFromDb.userId && ( + )}{" "} + {presenceItem.clientId === roomFromDb.userId && (
    - ) } - { " : " } + )} + {" : "}

    - { roomFromDb && + {roomFromDb && votesFromDb && voteString( roomFromDb.visible, votesFromDb, presenceItem.data - ) } + )}
  • ); - }) } + })}
- { roomFromDb.scale.split(",").map((scaleItem, index) => { + {roomFromDb.scale.split(",").map((scaleItem, index) => { return ( ); - }) } + })}
- ) } + )} - { sessionData && - !!roomFromDb && - roomFromDb.userId === sessionData.user.id && ( - <> -
-
-

Room Settings

+ {session && !!roomFromDb && roomFromDb.userId === session.user.id && ( + <> +
+
+

Room Settings

- + - { - setRoomScale(event.target.value); - } } - /> + { + setRoomScale(event.target.value); + }} + /> - + - { - setStoryNameText(event.target.value); - } } - /> + { + setStoryNameText(event.target.value); + }} + /> -
-
- -
- -
- -
- - { votesFromDb && - (roomFromDb.logs.length > 0 || - votesFromDb.length > 0) && ( -
- -
- ) } +
+
+
+ +
+ +
+ + {votesFromDb && + (roomFromDb.logs.length > 0 || votesFromDb.length > 0) && ( +
+ +
+ )}
- - ) } +
+ + )} ); // Room does not exist