From 3cc7bd2135d9f91a6bd46c60b5ff0819f2d698a4 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Wed, 10 Aug 2022 00:00:02 -0700 Subject: [PATCH] Change `usePrivateUser` hook to use the auth context data --- web/components/groups/group-chat.tsx | 2 +- web/components/nav/nav-bar.tsx | 2 +- web/components/nav/sidebar.tsx | 2 +- web/components/notifications-icon.tsx | 5 ++--- web/hooks/use-admin.ts | 5 ++--- web/hooks/use-user.ts | 25 ++++++------------------- 6 files changed, 13 insertions(+), 28 deletions(-) diff --git a/web/components/groups/group-chat.tsx b/web/components/groups/group-chat.tsx index 0f9e8955..4fd8c2fe 100644 --- a/web/components/groups/group-chat.tsx +++ b/web/components/groups/group-chat.tsx @@ -31,7 +31,7 @@ export function GroupChat(props: { }) { const { messages, user, group, tips } = props - const privateUser = usePrivateUser(user?.id) + const privateUser = usePrivateUser() const { editor, upload } = useTextEditor({ simple: true, diff --git a/web/components/nav/nav-bar.tsx b/web/components/nav/nav-bar.tsx index 971aa89a..a935173a 100644 --- a/web/components/nav/nav-bar.tsx +++ b/web/components/nav/nav-bar.tsx @@ -44,7 +44,7 @@ export function BottomNavBar() { const currentPage = router.pathname const user = useUser() - const privateUser = usePrivateUser(user?.id) + const privateUser = usePrivateUser() const isIframe = useIsIframe() if (isIframe) { diff --git a/web/components/nav/sidebar.tsx b/web/components/nav/sidebar.tsx index 3a3c932f..dfb7805e 100644 --- a/web/components/nav/sidebar.tsx +++ b/web/components/nav/sidebar.tsx @@ -221,7 +221,7 @@ export default function Sidebar(props: { className?: string }) { const currentPage = router.pathname const user = useUser() - const privateUser = usePrivateUser(user?.id) + const privateUser = usePrivateUser() // usePing(user?.id) const navigationOptions = !user ? signedOutNavigation : getNavigation() diff --git a/web/components/notifications-icon.tsx b/web/components/notifications-icon.tsx index 0dfc5054..dbdad6a9 100644 --- a/web/components/notifications-icon.tsx +++ b/web/components/notifications-icon.tsx @@ -2,15 +2,14 @@ import { BellIcon } from '@heroicons/react/outline' import clsx from 'clsx' import { Row } from 'web/components/layout/row' import { useEffect, useState } from 'react' -import { usePrivateUser, useUser } from 'web/hooks/use-user' +import { usePrivateUser } from 'web/hooks/use-user' import { useRouter } from 'next/router' import { useUnseenPreferredNotificationGroups } from 'web/hooks/use-notifications' import { NOTIFICATIONS_PER_PAGE } from 'web/pages/notifications' import { PrivateUser } from 'common/user' export default function NotificationsIcon(props: { className?: string }) { - const user = useUser() - const privateUser = usePrivateUser(user?.id) + const privateUser = usePrivateUser() return ( diff --git a/web/hooks/use-admin.ts b/web/hooks/use-admin.ts index a80b3ac4..551c588b 100644 --- a/web/hooks/use-admin.ts +++ b/web/hooks/use-admin.ts @@ -1,8 +1,7 @@ import { isAdmin } from 'common/envs/constants' -import { usePrivateUser, useUser } from './use-user' +import { usePrivateUser } from './use-user' export const useAdmin = () => { - const user = useUser() - const privateUser = usePrivateUser(user?.id) + const privateUser = usePrivateUser() return isAdmin(privateUser?.email || '') } diff --git a/web/hooks/use-user.ts b/web/hooks/use-user.ts index 85b23e30..b0cb1bc3 100644 --- a/web/hooks/use-user.ts +++ b/web/hooks/use-user.ts @@ -1,15 +1,9 @@ -import { useContext, useEffect, useState } from 'react' +import { useContext } from 'react' import { useFirestoreDocumentData } from '@react-query-firebase/firestore' import { QueryClient } from 'react-query' -import { doc, DocumentData, where } from 'firebase/firestore' -import { PrivateUser } from 'common/user' -import { - getUser, - listenForPrivateUser, - User, - users, -} from 'web/lib/firebase/users' +import { doc, DocumentData } from 'firebase/firestore' +import { getUser, User, users } from 'web/lib/firebase/users' import { AuthContext } from 'web/components/auth-context' export const useUser = () => { @@ -17,16 +11,9 @@ export const useUser = () => { return authUser ? authUser.user : authUser } -export const usePrivateUser = (userId?: string) => { - const [privateUser, setPrivateUser] = useState< - PrivateUser | null | undefined - >(undefined) - - useEffect(() => { - if (userId) return listenForPrivateUser(userId, setPrivateUser) - }, [userId]) - - return privateUser +export const usePrivateUser = () => { + const authUser = useContext(AuthContext) + return authUser ? authUser.privateUser : authUser } export const useUserById = (userId = '_') => {