diff options
Diffstat (limited to 'src/containers/Profile/Profile.tsx')
-rw-r--r-- | src/containers/Profile/Profile.tsx | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/containers/Profile/Profile.tsx b/src/containers/Profile/Profile.tsx index 33abfc2..701aa06 100644 --- a/src/containers/Profile/Profile.tsx +++ b/src/containers/Profile/Profile.tsx @@ -7,6 +7,7 @@ import ProfileInfo from './ProfileInfo'; import PollsList from '../../components/PollsList/PollsList'; import Loading from '../../components/Loading/Loading'; import Fab from '../../components/Fab/Fab'; +import EmptyState from '../../components/EmptyState/EmptyState'; import { useAuth } from '../../hooks/useAuth'; import { useUser, useProfile } from '../../hooks/APIClient'; @@ -26,28 +27,31 @@ const Profile: React.FC = () => { } }, [username, history, user]); + const isOwnProfile = useMemo(() => user?.username === username, [user, username]); - const totalVotes = useMemo(() => polls.reduce( + const totalVotes = useMemo(() => polls?.reduce( (total: number, current: Poll) => { const { left, right } = current.contents; return total + left.votes + right.votes; }, 0 - ), [polls]); + ) || 0, [polls]); return ( <Container maxWidth="sm" disableGutters> <ProfileInfo userInfo={userInfo} setUserInfo={setUserInfo} - savedPolls={polls.length} + savedPolls={polls?.length || 0} totalVotes={totalVotes} /> { - isValidating && !polls - ? <Loading /> - : <PollsList polls={polls} mutate={mutatePolls} /> + polls + ? polls.length + ? <PollsList polls={polls} mutate={mutatePolls} /> + : <EmptyState message={isOwnProfile ? 'Create a poll and it will show up here.' : ''} /> + : isValidating && <Loading /> } - {user?.username === username && <Fab />} + {isOwnProfile && <Fab />} </Container> ); }; |