From 6ef40b954a87ebb0a2621119064f38d58ea85148 Mon Sep 17 00:00:00 2001 From: Sabir Hassan Date: Thu, 4 Aug 2022 22:57:21 +0500 Subject: [PATCH] fix: improve responsiveness for mobile view --- web/src/components/header.tsx | 230 +++++++++++++++------ web/src/components/username.tsx | 9 +- web/src/containers/Settings/index.tsx | 11 +- web/src/containers/Settings/permission.tsx | 22 +- 4 files changed, 201 insertions(+), 71 deletions(-) diff --git a/web/src/components/header.tsx b/web/src/components/header.tsx index 7778016..1cb634f 100644 --- a/web/src/components/header.tsx +++ b/web/src/components/header.tsx @@ -2,16 +2,18 @@ import React, { useState, useEffect, useContext } from 'react' import { Link, useNavigate, useLocation } from 'react-router-dom' import { + Box, AppBar, Toolbar, Tabs, Tab, Button, Menu, - MenuItem + MenuItem, + IconButton, + Typography } from '@mui/material' -import OpenInNewIcon from '@mui/icons-material/OpenInNew' -import SettingsIcon from '@mui/icons-material/Settings' +import { OpenInNew, Settings, Menu as MenuIcon } from '@mui/icons-material' import Username from './username' import { AppContext } from '../context/appContext' @@ -30,31 +32,38 @@ const Header = (props: any) => { const [tabValue, setTabValue] = useState( validTabs.includes(pathname) ? pathname : '/' ) - const [anchorEl, setAnchorEl] = useState< - (EventTarget & HTMLButtonElement) | null - >(null) + + const [anchorElNav, setAnchorElNav] = React.useState(null) + const [anchorElUser, setAnchorElUser] = React.useState( + null + ) + + const handleOpenNavMenu = (event: React.MouseEvent) => { + setAnchorElNav(event.currentTarget) + } + const handleOpenUserMenu = (event: React.MouseEvent) => { + setAnchorElUser(event.currentTarget) + } + + const handleCloseNavMenu = () => { + setAnchorElNav(null) + } + + const handleCloseUserMenu = () => { + setAnchorElUser(null) + } useEffect(() => { setTabValue(validTabs.includes(pathname) ? pathname : '/') }, [pathname]) - const handleMenu = ( - event: React.MouseEvent - ) => { - setAnchorEl(event.currentTarget) - } - - const handleClose = () => { - setAnchorEl(null) - } - const handleTabChange = (event: React.SyntheticEvent, value: string) => { setTabValue(value) } const handleLogout = () => { if (appContext.logout) { - handleClose() + handleCloseUserMenu() appContext.logout() } } @@ -64,43 +73,129 @@ const Header = (props: any) => { sx={{ zIndex: (theme) => theme.zIndex.drawer + 1 }} > - logo { - setTabValue('/') - navigate('/') - }} - /> - - - + logo { + setTabValue('/') + navigate('/') + }} /> - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + logo { + setTabValue('/') + navigate('/') + }} + /> + +
{ > { vertical: 'top', horizontal: 'center' }} - open={!!anchorEl} - onClose={handleClose} + open={!!anchorElUser} + onClose={handleCloseUserMenu} > + {appContext.loggedIn && ( + + + {appContext.displayName || appContext.username} + + + )} + @@ -147,7 +255,7 @@ const Header = (props: any) => { variant="contained" size="large" color="primary" - endIcon={} + endIcon={} > Docs @@ -160,7 +268,7 @@ const Header = (props: any) => { variant="contained" color="primary" size="large" - endIcon={} + endIcon={} > API diff --git a/web/src/components/username.tsx b/web/src/components/username.tsx index d7c4eca..3d465f5 100644 --- a/web/src/components/username.tsx +++ b/web/src/components/username.tsx @@ -20,7 +20,14 @@ const Username = (props: any) => { ) : ( )} - + {props.username} diff --git a/web/src/containers/Settings/index.tsx b/web/src/containers/Settings/index.tsx index 9abe7bf..0032549 100644 --- a/web/src/containers/Settings/index.tsx +++ b/web/src/containers/Settings/index.tsx @@ -31,11 +31,20 @@ const Settings = () => { - + { ) : ( - + - - setFilterModalOpen(true)} /> + setFilterModalOpen(true)}> + {appContext.isAdmin && ( @@ -369,14 +375,14 @@ const Permission = () => { )} - - + + - + { Group Members - {group.users.map((user) => ( - + {group.users.map((user, index) => ( + {user.username} ))}