nice updating user status
This commit is contained in:
@@ -22,7 +22,6 @@ import { Tooltip } from "antd";
|
|||||||
import { useAudioContext } from "../../contexts/audioContext";
|
import { useAudioContext } from "../../contexts/audioContext";
|
||||||
import UserStatusBubble, { UserPulse } from "../UserStatusBubble";
|
import UserStatusBubble, { UserPulse } from "../UserStatusBubble";
|
||||||
|
|
||||||
const userService = new UserService();
|
|
||||||
const db = getFirestore();
|
const db = getFirestore();
|
||||||
|
|
||||||
const maxNumberOfKeyboardMappings: number = 9;
|
const maxNumberOfKeyboardMappings: number = 9;
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
import { doc, getFirestore, onSnapshot, Unsubscribe } from "firebase/firestore";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import React, { useContext, useEffect, useState } from "react";
|
import React, { useContext, useEffect, useState } from "react";
|
||||||
import Loading from "../components/Loading";
|
import Loading from "../components/Loading";
|
||||||
import { Team } from "../models/team";
|
import { Team } from "../models/team";
|
||||||
import { TeamMember, TeamMemberStatus } from "../models/teamMember";
|
import { TeamMember, TeamMemberStatus } from "../models/teamMember";
|
||||||
import { User } from "../models/user";
|
import { User } from "../models/user";
|
||||||
|
import { Collections } from "../services/collections";
|
||||||
import TeamService from "../services/teamService";
|
import TeamService from "../services/teamService";
|
||||||
import UserService from "../services/userService";
|
import UserService from "../services/userService";
|
||||||
import { useAuth } from "./authContext";
|
import { useAuth } from "./authContext";
|
||||||
@@ -20,6 +22,7 @@ const TeamDashboardContext =
|
|||||||
|
|
||||||
const teamService = new TeamService();
|
const teamService = new TeamService();
|
||||||
const userService = new UserService();
|
const userService = new UserService();
|
||||||
|
const db = getFirestore();
|
||||||
|
|
||||||
export function TeamDashboardContextProvider({ children }) {
|
export function TeamDashboardContextProvider({ children }) {
|
||||||
const { currUser } = useAuth();
|
const { currUser } = useAuth();
|
||||||
@@ -38,6 +41,8 @@ export function TeamDashboardContextProvider({ children }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
var userListener: Unsubscribe;
|
||||||
|
|
||||||
(async function () {
|
(async function () {
|
||||||
try {
|
try {
|
||||||
// SECTION: authentication
|
// SECTION: authentication
|
||||||
@@ -49,8 +54,17 @@ export function TeamDashboardContextProvider({ children }) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// SECTION: get user details
|
// SECTION: get user details : realtime
|
||||||
const returnedUser = await userService.getUser(currUser.uid);
|
const returnedUser = await userService.getUser(currUser.uid);
|
||||||
|
|
||||||
|
const docRef = doc(db, Collections.users, currUser.uid);
|
||||||
|
|
||||||
|
userListener = onSnapshot(docRef, (doc) => {
|
||||||
|
const updatedUser = doc.data() as User;
|
||||||
|
|
||||||
|
setValue((prevValue) => ({ ...prevValue, user: updatedUser }));
|
||||||
|
});
|
||||||
|
|
||||||
setValue((prevValue) => ({ ...prevValue, user: returnedUser }));
|
setValue((prevValue) => ({ ...prevValue, user: returnedUser }));
|
||||||
|
|
||||||
// SECTION: getting team data and team member information
|
// SECTION: getting team data and team member information
|
||||||
@@ -134,6 +148,10 @@ export function TeamDashboardContextProvider({ children }) {
|
|||||||
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
userListener();
|
||||||
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
if (loading) {
|
if (loading) {
|
||||||
|
|||||||
Reference in New Issue
Block a user