From 3cd9081939d2f22221065018cb501441528257fc Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 3 Jul 2020 22:09:22 +0300 Subject: feat: adapt header for mobile devices --- src/components/Header/Header.tsx | 78 ++++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 22 deletions(-) (limited to 'src/components') diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 294c250..c6c1608 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -11,25 +11,33 @@ import NotificationsIcon from '@material-ui/icons/Notifications'; import HomeIcon from '@material-ui/icons/Home'; import { useAuth } from '../../hooks/useAuth'; import { useNavigate } from '../../hooks/useNavigate'; +import { isMobile } from 'react-device-detect'; import SearchBar from './SearchBar'; -const useStyles = makeStyles({ - root: { +const useStyles = makeStyles(theme => ({ + mobile: { + top: 'auto', + bottom: 0 + }, + toolbar: { display: 'flex', - justifyContent: 'space-around', + justifyContent: 'space-around' + }, + browserToolbar: { width: '60%', margin: 'auto' }, logo: { fontWeight: 'bold', - cursor: 'pointer' + cursor: 'pointer', + color: 'white' }, avatar: { - width: 24, - height: 24 + width: theme.spacing(3), + height: theme.spacing(3) } -}); +})); const Header: React.FC = () => { const classes = useStyles(); @@ -53,31 +61,57 @@ const Header: React.FC = () => { navigate('notifications'); }; - return ( + const FeedButton = ( + + + + ); + + const NotificationsButton = ( + + + + ); + + const ProfileButton = ( + + { user?.avatarUrl + ? + : + } + + ); + + const BrowserVersion = ( - + Which
- - - - - - - - { - user?.avatarUrl - ? - : - } - + {FeedButton} + {NotificationsButton} + {ProfileButton}
); + + const MobileVersion = ( + + + + W + + {FeedButton} + {NotificationsButton} + {ProfileButton} + + + ); + + return isMobile ? MobileVersion : BrowserVersion; }; export default Header; -- cgit v1.2.3 From 6a216b903899d1481f93ebff40e246f60c4c3e89 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 3 Jul 2020 22:44:38 +0300 Subject: feat: adapt all pages to mobile view --- src/components/PollCard/PollCard.tsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'src/components') diff --git a/src/components/PollCard/PollCard.tsx b/src/components/PollCard/PollCard.tsx index f5a5762..ca85d11 100644 --- a/src/components/PollCard/PollCard.tsx +++ b/src/components/PollCard/PollCard.tsx @@ -26,14 +26,8 @@ const DATE_FORMAT = { }; const useStyles = makeStyles(theme => ({ - root: { - maxWidth: theme.spacing(75), - height: 488, - margin: '40px auto' - }, images: { height: theme.spacing(50), - width: 300 }, imagesBlock: { display: 'flex' @@ -103,7 +97,7 @@ const PollCard: React.FC = ({ initialPoll }) => { const dominant: Which = left.votes >= right.votes ? 'left' : 'right'; return ( - +
-- cgit v1.2.3 From f6bb137ccf414ba36610c0ceea598c95683dce60 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 3 Jul 2020 23:00:04 +0300 Subject: refactor: use mui-breakpoints --- src/components/Header/Header.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/components') diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index c6c1608..e7f9f47 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -3,15 +3,16 @@ import { AppBar, Toolbar, IconButton, - Typography, Avatar + Typography, + Avatar, + useMediaQuery } from '@material-ui/core'; -import { makeStyles } from '@material-ui/core/styles'; +import { makeStyles, useTheme } from '@material-ui/core/styles'; import AccountCircle from '@material-ui/icons/AccountCircle'; import NotificationsIcon from '@material-ui/icons/Notifications'; import HomeIcon from '@material-ui/icons/Home'; import { useAuth } from '../../hooks/useAuth'; import { useNavigate } from '../../hooks/useNavigate'; -import { isMobile } from 'react-device-detect'; import SearchBar from './SearchBar'; @@ -43,6 +44,8 @@ const Header: React.FC = () => { const classes = useStyles(); const { user } = useAuth(); const { navigate } = useNavigate(); + const theme = useTheme(); + const isMobile = useMediaQuery(theme.breakpoints.down('sm')); const handleHome = (): void => { navigate('home'); -- cgit v1.2.3 From c3a9c9251e704d702d16c74016d347b209ed8bc6 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 3 Jul 2020 23:23:56 +0300 Subject: fix: make iconbutton round --- src/components/Header/Header.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/components') diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index e7f9f47..bf831d4 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -34,7 +34,7 @@ const useStyles = makeStyles(theme => ({ cursor: 'pointer', color: 'white' }, - avatar: { + round: { width: theme.spacing(3), height: theme.spacing(3) } @@ -79,7 +79,7 @@ const Header: React.FC = () => { const ProfileButton = ( { user?.avatarUrl - ? + ? : } @@ -105,7 +105,7 @@ const Header: React.FC = () => { - W + W {FeedButton} {NotificationsButton} -- cgit v1.2.3 From 86b09f910a44502a7d7b1e14b50b2f02158dfb39 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 3 Jul 2020 23:42:32 +0300 Subject: feat: lower the height of polls --- src/components/Feed/Feed.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/components') diff --git a/src/components/Feed/Feed.tsx b/src/components/Feed/Feed.tsx index 5814711..afa914d 100644 --- a/src/components/Feed/Feed.tsx +++ b/src/components/Feed/Feed.tsx @@ -42,7 +42,7 @@ const Feed: React.FC = ({ polls }) => { isScrolling={isScrolling} onScroll={onChildScroll} rowCount={polls.length} - rowHeight={600} + rowHeight={550} rowRenderer={RenderItem} scrollTop={scrollTop} width={width} -- cgit v1.2.3 From 2a83b58e40d60dc058f385440a3125c60fb90026 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 4 Jul 2020 00:05:33 +0300 Subject: refactor: improve scrollTopArrow --- src/components/ScrollTopArrow/ScrollTopArrow.tsx | 40 ++++++++++++++---------- 1 file changed, 23 insertions(+), 17 deletions(-) (limited to 'src/components') diff --git a/src/components/ScrollTopArrow/ScrollTopArrow.tsx b/src/components/ScrollTopArrow/ScrollTopArrow.tsx index 6b9d5c9..dfa573f 100644 --- a/src/components/ScrollTopArrow/ScrollTopArrow.tsx +++ b/src/components/ScrollTopArrow/ScrollTopArrow.tsx @@ -1,26 +1,33 @@ import React, { useState } from 'react'; -import { FaArrowCircleUp } from 'react-icons/fa'; -import { makeStyles } from '@material-ui/core'; -import teal from '@material-ui/core/colors/teal'; +import { makeStyles, useTheme } from '@material-ui/core/styles'; +import { useMediaQuery } from '@material-ui/core'; +import ArrowUpwardIcon from '@material-ui/icons/ArrowUpward'; -const useStyles = makeStyles(() => ({ - scrollTop: { +const useStyles = makeStyles(theme => ({ + root: { position: 'fixed', - width: 50, - bottom: 50, - left: 50, + bottom: theme.spacing(10), + left: theme.spacing(10), zIndex: 1000, cursor: 'pointer', - opacity: 0.5, + opacity: 0.4, '&:hover': { - opacity: '1' - } + opacity: 1 + }, + background: theme.palette.primary.main, + borderRadius: '50%' + }, + icon: { + fontSize: 80, + color: 'white' } })); -const ScrollTopArrow:React.FC = () => { +const ScrollTopArrow: React.FC = () => { const [showScroll, setShowScroll] = useState(false); + const theme = useTheme(); const classes = useStyles(); + const isMobile = useMediaQuery(theme.breakpoints.down("sm")); const checkScrollTop = () => { if (!showScroll && window.pageYOffset > 400) { @@ -37,11 +44,10 @@ const ScrollTopArrow:React.FC = () => { window.addEventListener('scroll', checkScrollTop); return ( - +
+ {showScroll && !isMobile && + } +
); }; -- cgit v1.2.3 From b52743cc950e9633a2da41f72d3462286c629967 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 4 Jul 2020 00:08:57 +0300 Subject: style: remove eslint errors --- src/components/Header/Header.tsx | 3 ++- src/components/PollCard/PollCard.tsx | 2 +- src/components/ScrollTopArrow/ScrollTopArrow.tsx | 9 ++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src/components') diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index bf831d4..41aeec7 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -78,7 +78,8 @@ const Header: React.FC = () => { const ProfileButton = ( - { user?.avatarUrl + { + user?.avatarUrl ? : } diff --git a/src/components/PollCard/PollCard.tsx b/src/components/PollCard/PollCard.tsx index ca85d11..98ae001 100644 --- a/src/components/PollCard/PollCard.tsx +++ b/src/components/PollCard/PollCard.tsx @@ -27,7 +27,7 @@ const DATE_FORMAT = { const useStyles = makeStyles(theme => ({ images: { - height: theme.spacing(50), + height: theme.spacing(50) }, imagesBlock: { display: 'flex' diff --git a/src/components/ScrollTopArrow/ScrollTopArrow.tsx b/src/components/ScrollTopArrow/ScrollTopArrow.tsx index dfa573f..08b8591 100644 --- a/src/components/ScrollTopArrow/ScrollTopArrow.tsx +++ b/src/components/ScrollTopArrow/ScrollTopArrow.tsx @@ -27,7 +27,7 @@ const ScrollTopArrow: React.FC = () => { const [showScroll, setShowScroll] = useState(false); const theme = useTheme(); const classes = useStyles(); - const isMobile = useMediaQuery(theme.breakpoints.down("sm")); + const isMobile = useMediaQuery(theme.breakpoints.down('sm')); const checkScrollTop = () => { if (!showScroll && window.pageYOffset > 400) { @@ -45,8 +45,11 @@ const ScrollTopArrow: React.FC = () => { return (
- {showScroll && !isMobile && - } + { + showScroll + && !isMobile + && + }
); }; -- cgit v1.2.3