From c311c538a3442aed8d77449736f28be66feea57c Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 14 Jun 2020 22:42:52 +0300 Subject: feat: configure navigation --- src/components/Feed/Feed.tsx | 5 +++-- src/components/Header/Header.tsx | 8 ++++---- src/components/PollCard/PollCard.tsx | 20 ++++++++++++++++---- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'src/components') diff --git a/src/components/Feed/Feed.tsx b/src/components/Feed/Feed.tsx index 8dc3ec1..3b8e16f 100644 --- a/src/components/Feed/Feed.tsx +++ b/src/components/Feed/Feed.tsx @@ -5,6 +5,7 @@ import PollCard from '../PollCard/PollCard'; interface PropTypes { polls: Poll[]; + navigate: (prefix: string, id: string) => void; } const useStyles = makeStyles(theme => ({ @@ -15,12 +16,12 @@ const useStyles = makeStyles(theme => ({ } })); -const Feed: React.FC = ({ polls }) => { +const Feed: React.FC = ({ polls, navigate }) => { const classes = useStyles(); return (
- {polls.map(poll => )} + {polls.map(poll => )}
); }; diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 0ee6b5f..4e25fa3 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -13,7 +13,7 @@ import HomeIcon from '@material-ui/icons/Home'; import SearchBar from './SearchBar'; interface PropTypes { - setPage: (newPage: string) => void; + navigate: (prefix: string) => void; } const useStyles = makeStyles({ @@ -28,15 +28,15 @@ const useStyles = makeStyles({ } }); -const Header: React.FC = ({ setPage }) => { +const Header: React.FC = ({ navigate }) => { const classes = useStyles(); const handleHome = (): void => { - setPage('feed'); + navigate('feed'); }; const handleProfile = (): void => { - setPage('profile'); + navigate('profile'); }; const handleNotifications = (): void => {}; diff --git a/src/components/PollCard/PollCard.tsx b/src/components/PollCard/PollCard.tsx index d5c99cc..7f587f3 100644 --- a/src/components/PollCard/PollCard.tsx +++ b/src/components/PollCard/PollCard.tsx @@ -5,13 +5,15 @@ import { CardActionArea, CardMedia, Avatar, - CardHeader + CardHeader, +Link } from '@material-ui/core/'; import { Poll } from '../../types'; import PercentageBar from './PercentageBar'; interface PropTypes { poll: Poll; + navigate: (prefix: string, id: string) => void; } const useStyles = makeStyles(theme => ({ @@ -30,19 +32,29 @@ const useStyles = makeStyles(theme => ({ })); -const PollCard: React.FC = ({ poll }) => { +const PollCard: React.FC = ({ poll, navigate }) => { const classes = useStyles(); const { author, contents } = poll; + const handleNavigate = () => { + navigate('profile', poll.author._id); + }; + const leftPercentage = Math.round(100 * (contents.left.votes / (contents.left.votes + contents.right.votes))); const rightPercentage = 100 - leftPercentage; - return ( + + + )} title={author.name} /> -- cgit v1.2.3