From 5f2fa566ae0f87a661e2b4effdfc2ac5db59e410 Mon Sep 17 00:00:00 2001 From: Arjun Patel Date: Wed, 9 Feb 2022 20:11:20 -0800 Subject: [PATCH] fixing things with profilke page --- packages/web/pages/teams/login.tsx | 3 +- packages/web/pages/teams/profile.tsx | 79 +++++++------------ packages/web/recoil/MainRecoilDataHandler.tsx | 24 +++--- 3 files changed, 43 insertions(+), 63 deletions(-) diff --git a/packages/web/pages/teams/login.tsx b/packages/web/pages/teams/login.tsx index a89f34a..9fa5022 100644 --- a/packages/web/pages/teams/login.tsx +++ b/packages/web/pages/teams/login.tsx @@ -30,6 +30,7 @@ export default function Login() { // setCurrUser(new UserData(user)); console.log(user); + window.open("/s", "_self"); }) .catch((error) => { // Handle Errors here. @@ -48,7 +49,7 @@ export default function Login() { // if auth, go to dashboard if (currUser) { console.log("already logged in, redirecting to router"); - router.push("/s"); + window.open("/s", "_self"); } }, [currUser]); diff --git a/packages/web/pages/teams/profile.tsx b/packages/web/pages/teams/profile.tsx index 41f7058..26e22c0 100644 --- a/packages/web/pages/teams/profile.tsx +++ b/packages/web/pages/teams/profile.tsx @@ -4,6 +4,7 @@ import { useEffect, useState } from "react"; import User from "@nirvana/common/models/user"; import UserService from "@nirvana/common/services/userService"; import { useAuth } from "../../contexts/authContext"; +import { UserStatus } from "../../../common/models/user"; export default function Profile() { const { currUser } = useAuth(); @@ -43,12 +44,10 @@ export default function Profile() { console.log("got user from the backend"); setUser(returnedUser); - setNickname(returnedUser.nickName ?? ""); setFirstName( - returnedUser.firstName ?? currUser.displayName.split(" ")[0] + returnedUser?.firstName ?? currUser.displayName!.split(" ")[0] ); - setLastName(returnedUser.lastName ?? ""); - setTeamRole(returnedUser.teamRole ?? ""); + setLastName(returnedUser?.lastName ?? ""); } catch (error) { console.log(error); router.push("/teams/login"); @@ -67,29 +66,25 @@ export default function Profile() { } else if (!lastName) { setError("Must input last name"); return; - } else if (!nickname) { - setError("Must input nickname"); - return; - } else if (nickname.length > 22) { - setError("nickname must be less than 22 characters"); - return; - } else if (!teamRole) { - setError("Must input team role!"); - return; } // create the user in the backend or just merge results - let newUser = new User(); - newUser.id = currUser.uid; + const newUser = new User( + user?.id, + currUser!.email!, + firstName, + lastName, + currUser!.photoURL!, + UserStatus.online + ); + newUser.id = currUser!.uid; newUser.firstName = firstName; newUser.lastName = lastName; - newUser.nickName = nickname; - newUser.avatarUrl = currUser.photoURL; - newUser.teamRole = teamRole; + newUser.avatarUrl = currUser!.photoURL!; try { await userService.updateUser(newUser); - router.push("/teams"); + window.open("/s", "_self"); } catch (error) { setError( "Something went wrong in saving your information. Please try again." @@ -100,7 +95,7 @@ export default function Profile() { } const [firstName, setFirstName] = useState( - currUser.displayName.split(" ")[0] + currUser!.displayName?.split(" ")[0] ?? "" ); const [lastName, setLastName] = useState(""); const [nickname, setNickname] = useState(""); @@ -120,7 +115,9 @@ export default function Profile() { - Avatar* + + Avatar* + Please change your google image to change this. @@ -132,7 +129,9 @@ export default function Profile() { - Email* + + Email* + This is set from your Google account and cannot be changed. @@ -146,7 +145,9 @@ export default function Profile() {
- First Name* + + First Name* + - Last Name* + + Last Name* + - - Nickname* - - What does your team call you? This is what is displayed. - - setNickname(e.target.value)} - /> - - - - Role* - - Are you a developer? designer? manager? - - setTeamRole(e.target.value)} - /> - - - - {/* if they already had a nickname, they are probably revisiting this page */} {/* can't cancel if they are a new user */} diff --git a/packages/web/recoil/MainRecoilDataHandler.tsx b/packages/web/recoil/MainRecoilDataHandler.tsx index 4f15868..4cee783 100644 --- a/packages/web/recoil/MainRecoilDataHandler.tsx +++ b/packages/web/recoil/MainRecoilDataHandler.tsx @@ -43,6 +43,20 @@ export default function MainRecoilDataHandler() { (async function () { try { + // get my current user profile and stay updated to my status + const unsubUser = onSnapshot( + doc(db, Collections.users, currUser!.uid), + (doc) => { + if (doc.exists()) { + const nirvanaUser = doc.data() as User; + setNirvanaUser(nirvanaUser); + } else { + window.open("/teams/profile", "_self"); + } + } + ); + unsubs.push(unsubUser); + // get all conversations that I am a part of const q = query( collectionGroup(db, Collections.conversationMembers), @@ -93,16 +107,6 @@ export default function MainRecoilDataHandler() { unsubs.push(unsubscribeUserConvoMember); - // get my current user profile and stay updated to my status - const unsubUser = onSnapshot( - doc(db, Collections.users, currUser!.uid), - (doc) => { - const nirvanaUser = doc.data() as User; - setNirvanaUser(nirvanaUser); - } - ); - unsubs.push(unsubUser); - // get every conversation where I am in the activeMembers list const convoQuery = query( collection(db, Collections.conversations),