all repos — caroster @ 3179dea72ab9887db77a2d5cbda9051cbc74b0c9

[Octree] Group carpool to your event https://caroster.io

wip add email in menu for logged in user
Hadrien Froger hadrien@octree.ch
Tue, 08 Sep 2020 11:23:22 +0100
commit

3179dea72ab9887db77a2d5cbda9051cbc74b0c9

parent

9019c5727bcdd231027ebab1d529fd1dcad5ca8a

M app/src/containers/EventBar/index.jsapp/src/containers/EventBar/index.js

@@ -3,6 +3,7 @@ import AppBar from '@material-ui/core/AppBar';

import Toolbar from '@material-ui/core/Toolbar'; import Typography from '@material-ui/core/Typography'; import Container from '@material-ui/core/Container'; +import Avatar from '@material-ui/core/Avatar'; import IconButton from '@material-ui/core/IconButton'; import Icon from '@material-ui/core/Icon'; import {makeStyles} from '@material-ui/core/styles';

@@ -12,13 +13,22 @@ import {useAuth} from 'strapi-react-context';

import EventMenu from '../EventMenu'; import EventDetails from '../EventDetails'; +const initials = email => { + const beforeAt = email.substr(0, email.indexOf('@')); + const matches = beforeAt.split('.'); + if (matches.length > 1) { + return `${matches[0][0]}${matches[1][0]}`.toUpperCase(); + } + return matches[0].substr(0, 2).toUpperCase(); +}; + const EventBar = ({event, isEditing, setIsEditing, onAdd, onSave, onShare}) => { const {t} = useTranslation(); const history = useHistory(); const [detailsOpen, toggleDetails] = useReducer(i => !i, false); const [anchorEl, setAnchorEl] = useState(null); const classes = useStyles({detailsOpen}); - const {token} = useAuth(); + const {token, authState} = useAuth(); useEffect(() => { if (!detailsOpen) setIsEditing(false);

@@ -67,6 +77,9 @@ },

]; const menuActions = token ? loggedMenuActions : noUserMenuActions; + const userInfos = authState?.user + ? [{label: authState.user.username, id: 'Email'}, {divider: true}] + : []; return ( <AppBar

@@ -110,17 +123,32 @@ color="inherit"

edge="end" id="ShareBtn" onClick={onShare} - className={classes.shareIcon} + className={classes.iconButtons} > <Icon>share</Icon> </IconButton> <IconButton color="inherit" edge="end" + id="ShareBtn" + onClick={toggleDetails} + className={classes.iconButtons} + > + <Icon>information_outline</Icon> + </IconButton> + <IconButton + color="inherit" + edge="end" id="MenuMoreInfo" onClick={e => setAnchorEl(e.currentTarget)} > - <Icon>more_vert</Icon> + {authState?.user ? ( + <Avatar className={classes.avatar}> + {initials(authState.user.username)} + </Avatar> + ) : ( + <Icon>more_vert</Icon> + )} </IconButton> </> )}

@@ -128,6 +156,7 @@ <EventMenu

anchorEl={anchorEl} setAnchorEl={setAnchorEl} actions={[ + ...userInfos, ...[ { label: detailsOpen

@@ -168,8 +197,15 @@ flexGrow: 1,

display: 'flex', alignItems: 'center', }, - shareIcon: { + iconButtons: { marginRight: theme.spacing(0), + marginLeft: theme.spacing(1), + }, + avatar: { + width: theme.spacing(3), + height: theme.spacing(3), + fontSize: 12, + fontWeight: 900, }, }));
M app/src/pages/Home.jsapp/src/pages/Home.js

@@ -10,7 +10,7 @@

const Home = () => { const history = useHistory(); const {t} = useTranslation(); - const {token} = useAuth(); + const {token, authState} = useAuth(); const noUserMenuActions = [ {

@@ -41,7 +41,11 @@

const menuActions = token ? loggedMenuActions : noUserMenuActions; return ( - <Layout menuTitle={t('event.creation.title')} menuActions={menuActions}> + <Layout + menuTitle={t('event.creation.title')} + menuActions={menuActions} + displayMenu={!!authState && !!authState.user} + > <Paper> <Logo /> <CreateEvent />
M app/src/pages/LostPassword.jsapp/src/pages/LostPassword.js

@@ -13,7 +13,7 @@ return <Redirect to="/dashboard" />;

} return ( - <Layout menuTitle={t('lost_password.title')}> + <Layout menuTitle={t('lost_password.title')} displayMenu={false}> <LostPasswordContainer /> </Layout> );
M app/src/pages/ResetPassword.jsapp/src/pages/ResetPassword.js

@@ -45,7 +45,7 @@ return <NotFound />;

} return ( - <Layout menuTitle={t('lost_password.reset_title')}> + <Layout menuTitle={t('lost_password.reset_title')} displayMenu={false}> <form onSubmit={onReset}> <ResetPasswordContainer isLoading={isLoading}
M app/src/pages/SignIn.jsapp/src/pages/SignIn.js

@@ -11,7 +11,7 @@

const SignIn = () => { const {t} = useTranslation(); return ( - <Layout menuTitle={t('signin.title')}> + <Layout menuTitle={t('signin.title')} displayMenu={false}> <Card> <CardMedia component={Logo} /> <SignInForm />
M app/src/pages/SignUp.jsapp/src/pages/SignUp.js

@@ -11,7 +11,7 @@

const SignUp = () => { const {t} = useTranslation(); return ( - <Layout menuTitle={t('signup.title')}> + <Layout menuTitle={t('signup.title')} displayMenu={false}> <Card> <CardMedia component={Logo} /> <SignUpForm />