Bug Fix - Unauth Redirect

This commit is contained in:
2024-04-08 00:08:21 -04:00
parent 3e354800dd
commit bc25b0e694
4 changed files with 37 additions and 27 deletions
+5 -3
View File
@@ -27,7 +27,7 @@ function Home() {
// State variables for app page
const [user, setUser] = useState(null); // user data
const [loadingLoc, setLoadingLoc] = useState(true); // location variable loading, true = loading, false = finished loading
const [authUser] = useAuthState(auth) // auth user object (used to obtain other user object)
const [authUser, authLoading] = useAuthState(auth) // auth user object (used to obtain other user object)
const [drawerOpen, setDrawerOpen] = useState(true); // drawer open state
const [coords, setCoords] = useState(null)
@@ -42,7 +42,7 @@ function Home() {
// Authentication Verification / Redirection if Profile Data not Filled out
useEffect(() => {
if (authUser) {
if (authUser && authLoading === false) {
onValue(ref(database, `users/${authUser.uid}`), (userData) => {
userData = userData.val();
if (userData) {
@@ -51,8 +51,10 @@ function Home() {
window.location.href = "/onboarding";
}
});
} else if (authLoading === false) {
window.location.href = "/login";
}
}, [authUser])
}, [authLoading])
useEffect(() => {
Geolocation.getCurrentPosition().then((position) => {
+5 -3
View File
@@ -24,7 +24,7 @@ function Chat() {
const [user, setUser] = useState(null); // user data
const [chatRoomObj, setChatRoomObj] = useState(null); // Current chatroom object
const [doneLoading, setDoneLoading] = useState(false) // is the page done loading or not
const [authUser] = useAuthState(auth) // auth user object (used to obtain other user object)
const [authUser, authLoading] = useAuthState(auth) // auth user object (used to obtain other user object)
const [drawerOpen, setDrawerOpen] = useState(true); // drawer open state
var windowSize = useWindowSize()
@@ -38,7 +38,7 @@ function Chat() {
// Authentication Verification / Redirection if Profile Data not Filled out
useEffect(() => {
if (authUser) {
if (authUser && authLoading === false) {
onValue(ref(database, `users/${authUser.uid}`), (userData) => {
userData = userData.val();
if (userData) {
@@ -47,8 +47,10 @@ function Chat() {
window.location.href = "/onboarding";
}
});
} else if (authLoading === false) {
window.location.href = "/login";
}
}, [authUser])
}, [authLoading])
// Users URL params to load proper chatroom, then logs the user into that room
useEffect(() => {
+13 -11
View File
@@ -24,7 +24,7 @@ function Chat() {
const [user, setUser] = useState(null); // user data
const [chatRoomObj, setChatRoomObj] = useState(null); // Current chatroom object
const [doneLoading, setDoneLoading] = useState(false) // is the page done loading or not
const [authUser] = useAuthState(auth) // auth user object (used to obtain other user object)
const [authUser, authLoading] = useAuthState(auth) // auth user object (used to obtain other user object)
const [drawerOpen, setDrawerOpen] = useState(true); // drawer open state
var windowSize = useWindowSize()
@@ -38,17 +38,19 @@ function Chat() {
// Authentication Verification / Redirection if Profile Data not Filled out
useEffect(() => {
if (authUser) {
onValue(ref(database, `users/${authUser.uid}`), (userData) => {
userData = userData.val();
if (userData) {
setUser(userData);
} else {
window.location.href = "/onboarding";
}
});
if (authUser && authLoading === false) {
onValue(ref(database, `users/${authUser.uid}`), (userData) => {
userData = userData.val();
if (userData) {
setUser(userData);
} else {
window.location.href = "/onboarding";
}
});
} else if (authLoading === false) {
window.location.href = "/login";
}
}, [authUser])
}, [authLoading])
// Users URL params to load proper chatroom, then logs the user into that room
useEffect(() => {
+14 -10
View File
@@ -3,10 +3,12 @@
import { useState, useEffect } from "react";
import { auth, database } from "../../../firebase-config";
import { ref, onValue, get } from "firebase/database";
import { onAuthStateChanged } from "firebase/auth";
import { useAuthState } from "react-firebase-hooks/auth"
// Refactored Component Imports
// Data Structure Imports
import { ProfileRoom } from "../../components/app/profile/ProfileRoom";
import { ProfileEdit } from "../../components/app/profile/ProfileEdit";
@@ -31,6 +33,8 @@ function UserProfile() {
const [isOwner, setIsOwner] = useState(false); // Determines if user is owner of profile
const [friends, setFriends] = useState(false); // is user a friend?
const [isPending, setPending] = useState(false); // is friend request pending?
const [authUser, authLoading] = useAuthState(auth) // auth user object (used to obtain other user object)
// Handles Edit State in Component, shares useState with ProfileEdit
const [isEditing, setIsEditing] = useState(false);
@@ -40,25 +44,25 @@ function UserProfile() {
// Authentication
useEffect(() => {
onAuthStateChanged(auth, (user) => {
if (authUser && authLoading === false) {
const searchParams = new URLSearchParams(document.location.search);
var userUID = searchParams.get("uid")
if (user) {
get(ref(database, `users/${user.uid}`)).then((userData) => {
onValue(ref(database, `users/${authUser.uid}`), (userData) => {
userData = userData.val();
if (userData) {
if (userData.uid == userUID) {
setIsOwner(true);
}
setUser(userData);
setIsAuthenticated(true);
setUser(userData);
} else {
window.location.href = "/onboarding";
window.location.href = "/onboarding";
}
});
}
});
}, []);
});
} else if (authLoading === false) {
window.location.href = "/login";
}
}, [authLoading]);
// Grabs profile user data
useEffect(() => {