aboutsummaryrefslogtreecommitdiff
path: root/src/pages/ProfilePage/ProfilePage.tsx
diff options
context:
space:
mode:
authorEugene Sokolov <eug-vs@keemail.me>2020-08-10 13:51:11 +0300
committerGitHub <noreply@github.com>2020-08-10 13:51:11 +0300
commit823c82383424616bc7c2562e2a763321edb6050c (patch)
tree1d5220d68ab8ebb392c87038f2fc24cc72b28775 /src/pages/ProfilePage/ProfilePage.tsx
parent70d20b76f042a519e8e164279dfa31b5ce027d44 (diff)
parent78218c0f3427ad79de003ac59cffb99b08f0ae7d (diff)
downloadwhich-ui-823c82383424616bc7c2562e2a763321edb6050c.tar.gz
Merge pull request #74 from which-ecosystem/fetching
SWR feat. crazy refactor
Diffstat (limited to 'src/pages/ProfilePage/ProfilePage.tsx')
-rw-r--r--src/pages/ProfilePage/ProfilePage.tsx72
1 files changed, 0 insertions, 72 deletions
diff --git a/src/pages/ProfilePage/ProfilePage.tsx b/src/pages/ProfilePage/ProfilePage.tsx
deleted file mode 100644
index ae94b9f..0000000
--- a/src/pages/ProfilePage/ProfilePage.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import React, { useState, useEffect } from 'react';
-import { useHistory, useParams } from 'react-router-dom';
-import { User, Poll } from 'which-types';
-import { Container } from '@material-ui/core';
-
-import ProfileInfo from './ProfileInfo';
-import Feed from '../../components/Feed/Feed';
-import { get } from '../../requests';
-import { useAuth } from '../../hooks/useAuth';
-
-
-const ProfilePage: React.FC = () => {
- const [userInfo, setUserInfo] = useState<User>();
- const [polls, setPolls] = useState<Poll[]>([]);
- const [totalVotes, setTotalVotes] = useState<number>(0);
- const [isInfoLoading, setIsInfoLoading] = useState(false);
- const [isPollsLoading, setIsPollsLoading] = useState(false);
- const history = useHistory();
- const { username } = useParams();
- const { user } = useAuth();
-
- useEffect(() => {
- setIsInfoLoading(true);
-
- const redirect = () => {
- if (user) history.push(`/profile/${user.username}`);
- else history.push('/login');
- };
-
- if (username) {
- get(`/users?username=${username}`).then(response => {
- if (!response.data.length) redirect(); // TODO: handle this case
- setUserInfo(response.data[0]);
- setIsInfoLoading(false);
- }).catch(() => redirect());
- } else redirect();
- }, [username, user, history]);
-
-
- useEffect(() => {
- if (userInfo?._id) {
- setIsPollsLoading(true);
-
- get(`/profiles/${userInfo._id}`).then(response => {
- setIsPollsLoading(false);
- setPolls([]);
- setPolls(response.data);
- setTotalVotes(response.data.reduce(
- (total: number, current: Poll) => {
- const { left, right } = current.contents;
- return total + left.votes + right.votes;
- }, 0
- ));
- });
- }
- }, [userInfo]);
-
- return (
- <Container maxWidth="sm" disableGutters>
- <ProfileInfo
- userInfo={userInfo}
- setUserInfo={setUserInfo}
- savedPolls={polls.length}
- totalVotes={totalVotes}
- isLoading={isInfoLoading}
- />
- {isPollsLoading ? <Feed polls={[]} /> : (polls.length > 0 && <Feed polls={polls} />)}
- </Container>
- );
-};
-
-export default ProfilePage;