aboutsummaryrefslogtreecommitdiff
path: root/src/containers/Profile/Profile.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/containers/Profile/Profile.tsx')
-rw-r--r--src/containers/Profile/Profile.tsx18
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>
);
};