diff --git a/components/Dashboard/Header.tsx b/components/Dashboard/Header.tsx
index 498b51f..338db35 100644
--- a/components/Dashboard/Header.tsx
+++ b/components/Dashboard/Header.tsx
@@ -17,10 +17,11 @@ import { User } from "../../models/user";
import { generateGreetings } from "../../helpers/dateTime";
import { Dropdown, Menu } from "antd";
import { useRouter } from "next/router";
+import { TeamMemberRole, TeamMemberStatus } from "../../models/teamMember";
export default function Header() {
const { logOut } = useAuth();
- const { team, user } = useTeamDashboardContext();
+ const { team, user, userTeamMember } = useTeamDashboardContext();
const router = useRouter();
const { teamid } = router.query;
@@ -38,17 +39,42 @@ export default function Header() {
const UserMenu = (
);
+ const searchBar = (
+
+
+
+
+
+
+
+ );
+
const today = new Date();
const periodOfDay = generateGreetings();
return (
@@ -80,32 +106,7 @@ export default function Header() {
{/* header control section */}
-
{/* search bar */}
-
-
-
-
-
-
-
diff --git a/components/Dashboard/TeamVoiceLine.tsx b/components/Dashboard/TeamVoiceLine.tsx
index c02a3cd..0a3662c 100644
--- a/components/Dashboard/TeamVoiceLine.tsx
+++ b/components/Dashboard/TeamVoiceLine.tsx
@@ -1,3 +1,131 @@
+import { useRouter } from "next/router";
+import { FaPlus } from "react-icons/fa";
+import { IoPulseOutline, IoRemoveOutline, IoTimer } from "react-icons/io5";
+import { BsThreeDots } from "react-icons/bs";
+import { useTeamDashboardContext } from "../../contexts/teamDashboardContext";
+import { UserStatus } from "../../models/user";
+import { useState } from "react";
+
export default function TeamVoiceLine() {
- return rooms
;
+ const router = useRouter();
+ const { teamid } = router.query;
+ const { teamMembers } = useTeamDashboardContext();
+ const [loading, setLoading] = useState(true);
+
+ //listeners for all teammates' status
+
+ function statusBubble(status: UserStatus) {
+ console.log(status);
+
+ switch (status) {
+ case UserStatus.online:
+ return (
+
+ );
+ case UserStatus.busy:
+ return (
+
+ );
+ case UserStatus.offline:
+ return (
+
+ );
+ default:
+ return (
+
+ );
+ }
+ }
+
+ function renderPulse(status: UserStatus) {
+ switch (status) {
+ case UserStatus.online:
+ return (
+
+ );
+ case UserStatus.busy:
+ return (
+
+ );
+ case UserStatus.offline:
+ return (
+
+ );
+ default:
+ return (
+
+ );
+ }
+ }
+
+ function renderTeamMemberList() {
+ // show loading skeleton if not yet got friend info
+ if (loading) {
+ return (
+
+ );
+ }
+
+ // if not teammates, stale state message to tell admin to add people
+ if (!teamMembers.length) {
+ }
+
+ return teamMembers.map((tmember, i) => {
+ return (
+
+
+
+
+ {statusBubble(UserStatus.online)}
+
+
+
+
+
+
+
+ {tmember.inviteEmailAddress}
+
+
+
+
+ {tmember.role}
+
+
+
+ {renderPulse(UserStatus.online)}
+
+ );
+ });
+ }
+
+ return (
+
+
+
+ TEAM
+
+
+
+
+ {/* list of team members */}
+ {renderTeamMemberList()}
+
+ );
}
diff --git a/pages/teams/[teamid].tsx b/pages/teams/[teamid].tsx
index 76a0039..72d4cbb 100644
--- a/pages/teams/[teamid].tsx
+++ b/pages/teams/[teamid].tsx
@@ -2,6 +2,7 @@ import { GetServerSidePropsContext, GetServerSidePropsResult } from "next";
import { useRouter } from "next/router";
import { useEffect, useState } from "react";
import Header from "../../components/Dashboard/Header";
+import TeamVoiceLine from "../../components/Dashboard/TeamVoiceLine";
import BackgroundLayout from "../../components/Layouts/BackgroundLayout";
import Loading from "../../components/Loading";
import { useAuth } from "../../contexts/authContext";
@@ -23,6 +24,10 @@ function TeamDashboard() {
return (
);
}