diff options
Diffstat (limited to 'src/pages/ProfilePage/ProfilePage.tsx')
-rw-r--r-- | src/pages/ProfilePage/ProfilePage.tsx | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/pages/ProfilePage/ProfilePage.tsx b/src/pages/ProfilePage/ProfilePage.tsx index 363d4ff..b0ac103 100644 --- a/src/pages/ProfilePage/ProfilePage.tsx +++ b/src/pages/ProfilePage/ProfilePage.tsx @@ -9,11 +9,15 @@ interface PropTypes { logOut: () => void; navigate: (prefix: string, id: string) => void; id: string; + setUser:(a:User)=>void; } -const ProfilePage: React.FC<PropTypes> = ({ logOut, id, navigate }) => { +const ProfilePage: React.FC<PropTypes> = ({ + logOut, id, navigate, setUser +}) => { const [userInfo, setUserInfo] = useState<User>(); const [polls, setPolls] = useState<Poll[]>([]); + const [totalVotes, setTotalVotes] = useState<number>(0); useEffect(() => { get(`/users/${id}`).then(response => { @@ -24,14 +28,26 @@ const ProfilePage: React.FC<PropTypes> = ({ logOut, id, navigate }) => { useEffect(() => { get(`/profiles/${id}`).then(response => { setPolls(response.data); + setTotalVotes(response.data.reduce( + (total: number, current: Poll) => { + const { left, right } = current.contents; + return total + left.votes + right.votes; + }, 0 + )); }); - }, [id]); - + }, [id, userInfo]); return ( <> - <ProfileInfo user={userInfo} logOut={logOut} /> - <Feed polls={polls} navigate={navigate} /> + <ProfileInfo + user={userInfo} + setUserInfo={setUserInfo} + setUser={setUser} + logOut={logOut} + savedPolls={polls.length} + totalVotes={totalVotes} + /> + <Feed polls={[...polls]} navigate={navigate} /> </> ); }; |