diff --git a/pages/teams/create.tsx b/pages/teams/create.tsx index f885286..859e1c6 100644 --- a/pages/teams/create.tsx +++ b/pages/teams/create.tsx @@ -6,113 +6,133 @@ import { Team, TeamStatus } from "../../models/team"; import { User, UserStatus } from "../../models/user"; import TeamService from "../../services/teamService"; -const initialSite: string = 'https://' +const initialSite: string = "https://"; -const teamService = new TeamService() +const teamService = new TeamService(); export default function CreateTeam() { - const { currUser } = useAuth() - const [error, setError] = useState('') - const [loading, setLoading] = useState(true) - const router = useRouter() + const { currUser } = useAuth(); + const [error, setError] = useState(""); + const [loading, setLoading] = useState(true); + const router = useRouter(); useEffect(() => { - (async function() { + (async function () { try { // if not authenticated, take user to the login if (!currUser) { - console.log('not authenticated...routing from dashboard to teams home') - router.push('/teams/login') + console.log( + "not authenticated...routing from dashboard to teams home" + ); + router.push("/teams/login"); } // todo if user is in a team already, notify them to make sure // buttt most likely will already be routed to the correct place from the router...don't do the router's job - - } catch(error) { - console.log(error) - router.push('/teams/login') + } catch (error) { + console.log(error); + router.push("/teams/login"); } - setLoading(false) + setLoading(false); })(); - }, []) + }, []); async function handleSubmit(e) { - e.preventDefault() + e.preventDefault(); - setLoading(true) + setLoading(true); if (!teamName) { - setError('You must input a team name!') - return + setError("You must input a team name!"); + return; } try { - const team = new Team() - team.name = teamName - team.createdByUserId = currUser.uid - team.status = TeamStatus.created - + const team = new Team(); + team.name = teamName; + team.createdByUserId = currUser.uid; + team.status = TeamStatus.created; + if (companySite != initialSite) { // make sure to put null in database for the team - team.companySite = companySite + team.companySite = companySite; } - + // provision a team with state of initiated - const createdTeamId = await teamService.createTeam(team) - router.push('/teams/' + createdTeamId) - } catch(error) { - setError(error.message) + const createdTeamId = await teamService.createTeam(team); + router.push("/teams/" + createdTeamId); + } catch (error) { + setError(error.message); } - setLoading(false) + setLoading(false); } - const [teamName, setTeamName] = useState('') - const [companySite, setcompanySite] = useState(initialSite) + const [teamName, setTeamName] = useState(""); + const [companySite, setcompanySite] = useState(initialSite); return ( -
{/* header */}
🙌Create a Team
- { - error && {error} - } + {error && {error}} Team Name - Everyone in your team will see this. You can always change this later. - setTeamName(e.target.value)} /> + + Everyone in your team will see this. You can always change this later. + + setTeamName(e.target.value)} + /> Company Site optional - setcompanySite(e.target.value)} /> + setcompanySite(e.target.value)} + /> - - { - loading ? -
+ + {loading ? ( +
Loading...
- : - - } - + )} - ) -} \ No newline at end of file + ); +} diff --git a/pages/teams/profile.tsx b/pages/teams/profile.tsx index 336ff46..f667fb6 100644 --- a/pages/teams/profile.tsx +++ b/pages/teams/profile.tsx @@ -6,125 +6,165 @@ import { User } from "../../models/user"; import UserService from "../../services/userService"; import Image from "next/image"; - export default function Profile() { - const { currUser, logOut } = useAuth() - const [user, setUser] = useState(null) + const { currUser, logOut } = useAuth(); + const [user, setUser] = useState(null); - const router = useRouter() - const userService: UserService = new UserService() + const router = useRouter(); + const userService: UserService = new UserService(); useEffect(() => { - (async function() { + (async function () { try { // if not authenticated, take user to the login if (!currUser) { - console.log('not authenticated...routing from dashboard to teams home') + console.log( + "not authenticated...routing from dashboard to teams home" + ); // router.push('/teams/login') } - // get user - const returnedUser: User|null = await userService.getUser(currUser.uid) + // get user + const returnedUser: User | null = await userService.getUser( + currUser.uid + ); // if the user is null, then go ahead and create the user even though it's not there yet if (!returnedUser) { - userService.createUser(currUser.uid, currUser.email, currUser.photoURL) + userService.createUser( + currUser.uid, + currUser.email, + currUser.photoURL + ); } - console.log('got user from the backend') + console.log("got user from the backend"); - setUser(returnedUser) - setNickname(returnedUser.nickName ?? '') - setFirstName(returnedUser.firstName ?? currUser.displayName.split(" ")[0]) - setLastName(returnedUser.lastName ?? '') - } catch(error) { - console.log(error) - router.push('/teams/login') + setUser(returnedUser); + setNickname(returnedUser.nickName ?? ""); + setFirstName( + returnedUser.firstName ?? currUser.displayName.split(" ")[0] + ); + setLastName(returnedUser.lastName ?? ""); + } catch (error) { + console.log(error); + router.push("/teams/login"); } })(); - }, []) + }, []); async function handleSubmit(e) { e.preventDefault(); if (!firstName) { - setError('Must input first name') - return + setError("Must input first name"); + return; } else if (!lastName) { - setError('Must input last name') - return + setError("Must input last name"); + return; } else if (!nickname) { - setError('Must input nickname') - return + setError("Must input nickname"); + return; } else if (nickname.length > 22) { - setError('nickname must be less than 22 characters') - return + setError("nickname must be less than 22 characters"); + return; } // create the user in the backend or just merge results - let newUser = new User() - newUser.id = currUser.uid - newUser.firstName = firstName - newUser.lastName = lastName - newUser.nickName = nickname - newUser.avatarUrl = currUser.photoURL + let newUser = new User(); + newUser.id = currUser.uid; + newUser.firstName = firstName; + newUser.lastName = lastName; + newUser.nickName = nickname; + newUser.avatarUrl = currUser.photoURL; try { - await userService.updateUser(newUser) - router.push('/teams') - } - catch(error) { - setError('Something went wrong in saving your information. Please try again.') + await userService.updateUser(newUser); + router.push("/teams"); + } catch (error) { + setError( + "Something went wrong in saving your information. Please try again." + ); } } - const [firstName, setFirstName] = useState(currUser.displayName.split(" ")[0]); - const [lastName, setLastName] = useState(''); - const [nickname, setNickname] = useState('') - const [error, setError] = useState('') + const [firstName, setFirstName] = useState( + currUser.displayName.split(" ")[0] + ); + const [lastName, setLastName] = useState(""); + const [nickname, setNickname] = useState(""); + const [error, setError] = useState(""); return ( -
{/* header */}
Profile
- { - error && {error} - } + {error && {error}} Avatar - Please change your google image to change this. - asdf + + Please change your google image to change this. + + asdf Email - This is set from your Google account and cannot be changed. - + + This is set from your Google account and cannot be changed. + + First Name - setFirstName(e.target.value)} /> + setFirstName(e.target.value)} + /> Last Name - setLastName(e.target.value)} /> + setLastName(e.target.value)} + /> Nickname - What does your team call you? - setNickname(e.target.value)} /> + + What does your team call you? + + setNickname(e.target.value)} + /> @@ -132,24 +172,33 @@ export default function Profile() { {/* if they already had a nickname, they are probably revisiting this page */} {/* can't cancel if they are a new user */} - { - user && user.nickName ? - <> - - - - : - <> - {/* if they already had a nickname, they are probably revisiting this page */} - - - } - + {user && user.nickName ? ( + <> + + + + ) : ( + <> + {/* if they already had a nickname, they are probably revisiting this page */} + + + )} - ) -} \ No newline at end of file + ); +}