diff options
author | eug-vs <eug-vs@keemail.me> | 2020-03-21 15:44:40 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-03-21 15:44:40 +0300 |
commit | 146947a665dbc1d2960d2062a22a106de0c71062 (patch) | |
tree | 11f4f4ccf2331e580e2a6f0df5a7e4279c0d5f5e /src/pages/Profile/Profile.js | |
parent | 2e9e20414c2ea49d7f40bcff09b89897e13fd2f4 (diff) | |
download | chrono-cube-ui-146947a665dbc1d2960d2062a22a106de0c71062.tar.gz |
chore: migrate profile page to Typescript :label:
Diffstat (limited to 'src/pages/Profile/Profile.js')
-rw-r--r-- | src/pages/Profile/Profile.js | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js deleted file mode 100644 index 65c3734..0000000 --- a/src/pages/Profile/Profile.js +++ /dev/null @@ -1,88 +0,0 @@ -import React, { useState, useEffect } from 'react'; - -import { - Button, - makeStyles, -} from '@material-ui/core'; - -import Registration from './Registration/Registration'; -import { - Window, - ContentSection, - SmartList, -} from 'react-benzin'; - -import SolutionCard from '../../components/SolutionCard/SolutionCard'; - -import { get } from '../../requests'; - - -const useStyles = makeStyles(theme => ({ - primary: { - padding: theme.spacing(4), - }, - cell: { - padding: theme.spacing(5), - }, -})); - - -const Profile = ({ user, setUser }) => { - const classes = useStyles(); - - const [profileSolutions, setProfileSolutions] = useState([]); - - const handleLogout = () => { - setUser({ username: 'anonymous', id: null }); - localStorage.clear(); - }; - - useEffect(() => { - get(`solutions/?author=${user.id}`).then(response => { - setProfileSolutions(response.data.reverse()); - }); - }, [user]); - - const removeSolution = (id) => { - setProfileSolutions(profileSolutions.filter((solution => solution.id !== id))); - }; - - const renderItem = ({ index, style }) => { - return ( - <div style={style} className={classes.cell}> - <SolutionCard data={profileSolutions[index]} removeThisCard={removeSolution} /> - </div> - ); - }; - - return ( - <> - <Window type="primary"> - <div className={classes.primary}> - { user.id? ( - <ContentSection sectionName={`Welcome back, ${user.username}!`}> - <p> Total amount of solutions: {profileSolutions.length} </p> - <p> You can always log out from your account! </p> - <Button variant="contained" color="secondary" onClick={handleLogout}> - Logout - </Button> - </ContentSection> - ): ( - <Registration setUser={setUser} /> - ) - } - </div> - </Window> - <Window type="secondary" name="History"> - <SmartList - itemSize={270} - itemCount={profileSolutions.length} - renderItem={renderItem} - /> - </Window> - </> - ) -}; - - -export default Profile; |