aboutsummaryrefslogtreecommitdiff
path: root/src/pages/ProfilePage
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/ProfilePage')
-rw-r--r--src/pages/ProfilePage/ProfileInfo.tsx63
-rw-r--r--src/pages/ProfilePage/ProfilePage.tsx32
2 files changed, 95 insertions, 0 deletions
diff --git a/src/pages/ProfilePage/ProfileInfo.tsx b/src/pages/ProfilePage/ProfileInfo.tsx
new file mode 100644
index 0000000..c2f242a
--- /dev/null
+++ b/src/pages/ProfilePage/ProfileInfo.tsx
@@ -0,0 +1,63 @@
+import React from 'react';
+import { Avatar } from '@material-ui/core/';
+import { makeStyles } from '@material-ui/core/styles';
+import Button from '@material-ui/core/Button/Button';
+import { User } from '../../types';
+
+interface PropTypes {
+ user: User | undefined;
+ logOut: () => void;
+}
+
+const useStyles = makeStyles({
+ avatar: {
+ margin: '0 auto',
+ width: 150,
+ height: 150,
+ marginBottom: 10
+ },
+ name: {
+ fontSize: 20,
+ textAlign: 'center'
+ },
+ profileMenu: {
+ display: 'flex',
+ width: '100%',
+ height: 50,
+ borderBottom: '1px solid lightgray',
+ margin: '50px 0'
+ },
+ menuButton: {
+ width: 200,
+ height: 50,
+ paddingTop: 15,
+ textAlign: 'center'
+ }
+});
+
+const ProfileInfo: React.FC<PropTypes> = ({ user, logOut }) => {
+ const classes = useStyles();
+
+ return (
+ <div>
+ <Avatar className={classes.avatar} src={user?.avatarUrl} />
+ <div className={classes.name}>
+ {user?.name}
+ </div>
+ <div className={classes.profileMenu}>
+ <div style={{ borderBottom: '1px solid green', color: 'green' }} className={classes.menuButton}>
+ Polls
+ </div>
+ <div className={classes.menuButton}>
+ Followers
+ </div>
+ <div className={classes.menuButton}>
+ Following
+ </div>
+ </div>
+ <Button variant="contained" onClick={logOut}>Log Out</Button>
+ </div>
+ );
+};
+
+export default ProfileInfo;
diff --git a/src/pages/ProfilePage/ProfilePage.tsx b/src/pages/ProfilePage/ProfilePage.tsx
new file mode 100644
index 0000000..1dd71d3
--- /dev/null
+++ b/src/pages/ProfilePage/ProfilePage.tsx
@@ -0,0 +1,32 @@
+import React, { useState } from 'react';
+import { User, Poll } from '../../types';
+import ProfileInfo from './ProfileInfo';
+import Feed from '../../components/Feed/Feed';
+import { get } from '../../requests';
+
+interface PropTypes {
+ logOut: () => void;
+ id: string;
+}
+
+const ProfilePage: React.FC<PropTypes> = ({ logOut, id }) => {
+ const [userInfo, setUserInfo] = useState<User>();
+ const [polls, setPolls] = useState<Poll[]>([]);
+
+ get(`/users/${id}`).then(response => {
+ setUserInfo(response.data);
+ });
+
+ get(`/profiles/${id}`).then(response => {
+ setPolls(response.data);
+ });
+
+ return (
+ <>
+ <ProfileInfo user={userInfo} logOut={logOut} />
+ <Feed polls={polls} />
+ </>
+ );
+};
+
+export default ProfilePage;