diff --git a/components/Dashboard/TeamVoiceLine.tsx b/components/Dashboard/TeamVoiceLine.tsx index f122ecb..4a393fb 100644 --- a/components/Dashboard/TeamVoiceLine.tsx +++ b/components/Dashboard/TeamVoiceLine.tsx @@ -27,6 +27,7 @@ import { useAudioContext } from "../../contexts/audioContext"; import UserStatusBubble, { UserPulse } from "../UserStatusBubble"; import { useAuth } from "../../contexts/authContext"; import { Message } from "../../models/message"; +import { compareStatus } from "../../helpers/userHelper"; const maxNumberOfKeyboardMappings: number = 9; @@ -68,6 +69,9 @@ export default function TeamVoiceLine() { ); newTeamUsers.push(updatedteamMateUser); + // order users by status + setTeamUsers(newTeamUsers.sort(compareStatus)); + return newTeamUsers; }); }); @@ -94,6 +98,7 @@ export default function TeamVoiceLine() { // set up shortcuts for each teammate useEffect(() => { + // create shortcuts teamUsers.forEach((tmUser, i) => { // make sure we don't map a user if they are past the max allowed if (i < maxNumberOfKeyboardMappings) { diff --git a/helpers/userHelper.tsx b/helpers/userHelper.tsx new file mode 100644 index 0000000..7f2ad8e --- /dev/null +++ b/helpers/userHelper.tsx @@ -0,0 +1,17 @@ +import { User, UserStatus } from "../models/user"; + +export function compareStatus(usera: User, userb: User) { + if (usera.userStatus == UserStatus.online) { + return -2; + } + + if (usera.userStatus == UserStatus.busy) { + return -1; + } + + if (usera.userStatus == UserStatus.offline) { + return 0; + } + + return 2; +}