From 6c09eb704cc68a17ff8588769f1919943a8ba5e1 Mon Sep 17 00:00:00 2001 From: Barry Low Date: Wed, 26 Sep 2018 08:51:49 -0700 Subject: [PATCH] Client: Profile drawer --- client/src/views/navbar/LoggedIn.js | 9 ++- client/src/views/navbar/LoggedInMenu.js | 42 +++++++++-- client/src/views/navbar/Profile.js | 94 +++++++++++++++++++++++++ 3 files changed, 136 insertions(+), 9 deletions(-) create mode 100644 client/src/views/navbar/Profile.js diff --git a/client/src/views/navbar/LoggedIn.js b/client/src/views/navbar/LoggedIn.js index fd172000e..242feefb1 100644 --- a/client/src/views/navbar/LoggedIn.js +++ b/client/src/views/navbar/LoggedIn.js @@ -3,7 +3,6 @@ import PropTypes from 'prop-types' import { Query } from 'react-apollo' import LoggedInMenu from './LoggedInMenu' -import { MessageCard } from '../common/' import { UserClient } from '../../App' import { USER_BY_AUTHID } from '../../graphql/members' @@ -51,14 +50,18 @@ export const LoggedIn = props => { {({ loading, error, data }) => { console.log('USER_BY_AUTHID: ', loading, error, data) + if (loading) { + return
Loading...
+ } + if (error) { error.graphQLErrors.map(({ message }, i) => { - return + return
{message}
}) } return (

- +

) }} diff --git a/client/src/views/navbar/LoggedInMenu.js b/client/src/views/navbar/LoggedInMenu.js index dd0389983..6c1fb266c 100644 --- a/client/src/views/navbar/LoggedInMenu.js +++ b/client/src/views/navbar/LoggedInMenu.js @@ -1,16 +1,29 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' +import { withStyles } from '@material-ui/core/styles' + import Button from '@material-ui/core/Button' import Menu from '@material-ui/core/Menu' import MenuItem from '@material-ui/core/MenuItem' +import Drawer from '@material-ui/core/Drawer' import { Link } from 'react-router-dom' import ProfileIcon from '@material-ui/icons/Person' import LogoutIcon from '@material-ui/icons/DirectionsWalk' -const UserLink = props => +import UserProfile from './Profile' + const LogoutLink = props => +const styles = { + drawer: { + width: 250 + }, + fullList: { + width: 'auto' + } +} + class LoggedInUserMenu extends Component { constructor (props) { super(props) @@ -18,14 +31,16 @@ class LoggedInUserMenu extends Component { this.handleMenu = this.handleMenu.bind(this) this.handleClose = this.handleClose.bind(this) this.handleLogout = this.handleLogout.bind(this) + this.toggleDrawer = this.toggleDrawer.bind(this) this.state = { - menu: null + menu: null, + open: false } } render () { - const { menuLabel } = this.props + const { menuLabel, user, classes } = this.props return ( + + + { user.firstName } { user.lastName } ( {user.alias} ) + + + + + { user.role.name } + + + + + { user.bio } + + + + + + ) + } +} + +UserProfile.propTypes = { + classes: PropTypes.object.isRequired, + user: PropTypes.object, + toggleDrawer: PropTypes.func +} +export default withStyles(styles)(UserProfile)