fixing sign out issues
This commit is contained in:
+12
-2
@@ -6,8 +6,10 @@ import {
|
||||
signOut,
|
||||
User,
|
||||
} from "firebase/auth";
|
||||
import { useRouter } from "next/router";
|
||||
import React, { useContext, useEffect, useState } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
import Loading from "../components/Loading";
|
||||
import firebase from "../services/firebaseService";
|
||||
|
||||
const AuthContext = React.createContext(null);
|
||||
@@ -19,8 +21,12 @@ export function AuthProvider({ children }) {
|
||||
const [currUser, setCurrUser] = useState();
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
useEffect(() => {
|
||||
const unsubscribe = onAuthStateChanged(auth, async (user) => {
|
||||
setLoading(true);
|
||||
|
||||
console.log("change in auth");
|
||||
if (user) {
|
||||
setCurrUser(user);
|
||||
@@ -67,10 +73,14 @@ export function AuthProvider({ children }) {
|
||||
});
|
||||
};
|
||||
|
||||
const logOut = () => {
|
||||
const logOut = async () => {
|
||||
setLoading(true);
|
||||
|
||||
console.log("logging user out");
|
||||
|
||||
return signOut(auth);
|
||||
Promise.resolve(await signOut(auth));
|
||||
|
||||
router.push("/teams/landing");
|
||||
};
|
||||
|
||||
const value = {
|
||||
|
||||
@@ -50,8 +50,11 @@ const db = getFirestore();
|
||||
|
||||
export function TeamDashboardContextProvider({ children }) {
|
||||
const { currUser } = useAuth();
|
||||
const [loading, setLoading] = useState<Boolean>(true);
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const [loading, setLoading] = useState<Boolean>(true);
|
||||
|
||||
const { teamid } = router.query;
|
||||
|
||||
// this context can only be used if it's a specific route: '/teams'
|
||||
@@ -212,7 +215,9 @@ export function TeamDashboardContextProvider({ children }) {
|
||||
})();
|
||||
|
||||
return () => {
|
||||
userListener();
|
||||
if (userListener) {
|
||||
userListener();
|
||||
}
|
||||
|
||||
unsubs.forEach((unsub) => {
|
||||
unsub();
|
||||
@@ -232,6 +237,12 @@ export function TeamDashboardContextProvider({ children }) {
|
||||
useEffect(() => {
|
||||
// todo for new messages, change document.title
|
||||
|
||||
if (!currUser) {
|
||||
console.log("not authenticated...routing from dashboard to teams home");
|
||||
router.push("/teams/login");
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* QUERY:
|
||||
* - last 24 hours only
|
||||
|
||||
Reference in New Issue
Block a user