diff --git a/components/Dashboard/TeamVoiceLine.tsx b/components/Dashboard/TeamVoiceLine.tsx index b87bca6..c95049c 100644 --- a/components/Dashboard/TeamVoiceLine.tsx +++ b/components/Dashboard/TeamVoiceLine.tsx @@ -80,7 +80,9 @@ export default function TeamVoiceLine() { try { // listeners for all teammates' status if (teamMembers) { + console.log(teamMembers); teamMembers.map((tmember) => { + console.log(tmember); if (tmember.status == TeamMemberStatus.activated) { const docRef = doc(db, Collections.users, tmember.userId); diff --git a/pages/teams/index.tsx b/pages/teams/index.tsx index 5edd774..5ce648c 100644 --- a/pages/teams/index.tsx +++ b/pages/teams/index.tsx @@ -57,7 +57,7 @@ function RouteHandler() { const returnedTeamMembers = await teamService.getTeamMembersByUserId( currUser.uid ); - console.log(returnedTeamMembers); + // if the user is deleted from a team, don't let them go there var teamId = ""; returnedTeamMembers.map((tm) => { @@ -75,6 +75,15 @@ function RouteHandler() { return; } + // last chance, if they are invited to a team, check for it + const invitedTeamMember = await teamService.getTeamMembersByEmailInvite( + currUser.email + ); + + if (invitedTeamMember.length > 0) { + router.push("/teams/" + invitedTeamMember[0].teamId); + } + setLoading(false); } catch (error) { console.log(error); diff --git a/services/teamService.tsx b/services/teamService.tsx index cdfbb28..b205ab5 100644 --- a/services/teamService.tsx +++ b/services/teamService.tsx @@ -131,6 +131,31 @@ export default class TeamService implements IService { return teamMember; } + async getTeamMembersByEmailInvite( + emailAddress: string + ): Promise { + const q = query( + collection(this.db, Collections.teamMembers), + where("inviteEmailAddress", "==", emailAddress) + ); + + const querySnapshot = await getDocs(q); + + var teamMembers: TeamMember[] = []; + querySnapshot.forEach((doc) => { + // doc.data() is never undefined for query doc snapshots + // get the first one and just return...shouldn't be more + console.log("got teammember data"); + let teamMember: TeamMember = doc.data() as TeamMember; + + teamMember.id = doc.id; + + teamMembers.push(teamMember); + }); + + return teamMembers; + } + async getTeamMembersByUserId(userId: string): Promise { const q = query( collection(this.db, Collections.teamMembers),