blob: 5c7a69054f4ee655f20a76741b8d269ce6677a31 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
import React from 'react'
import ModalDialog from './ModalDialog.jsx'
import UserList from './UserList.jsx'
import MealList from './MealList.jsx'
import client from '../client'
export default class LoggedInView extends React.Component {
constructor(props) {
super()
this.state = {
user: Object.assign({}, props.user),
mode: 'meals',
}
this.updateUser = this.updateUser.bind(this)
this.toggleMode = this.toggleMode.bind(this)
}
toggleMode(){
this.state.mode = this.state.mode == 'meals' ? 'users' : 'meals'
}
updateUser(user) {
this.setState({
user: user
})
}
render() {
let activity = null
if (this.state.mode == 'meals') {
activity = (<MealList user={this.state.user} currentUser={this.props.user} />)
}
else {
activity = (<UserList user={this.state.user} currentUser={this.props.user} updateUser={this.updateUser} />)
}
return (
<div>
<Menu mode={this.state.mode}
user={this.state.user}
toggleMode={this.toggleMode}
currentUser={this.props.user}
updateUser={this.updateUser} />
{activity}
</div>
)
}
}
class Menu extends React.Component {
constructor() {
super()
this.setGoal = this.setGoal.bind(this)
this.logout = this.logout.bind(this)
}
setGoal() {
const goal = Math.abs(parseInt(prompt('Please enter your calorie goal', this.props.user.goal)))
if (goal) {
client.service('users').patch(this.props.user.id, {
goal: goal,
token: client.get('token'),
}).then((user) => {
this.props.updateUser(user)
})
}
}
logout() {
client.logout().then(() => {
window.location.reload()
})
}
render() {
const user = this.props.user
const items = []
items.push( <li key='hello'>Hello {user.email}</li> )
items.push( <li key='goal'><a href='#' onClick={this.setGoal}>Goal</a>: {user.goal}</li> )
switch (user.role) {
case 'admin':
if (this.props.user.id !== this.props.currentUser.id) {
items.push( <li key='resetUser'><a href='#' onClick={this.resetUser}>Reset User</a></li> )
}
items.push( <li key='userlist'><a href='#' onClick={this.props.toggleMode}>Users</a></li> )
items.push( <li key='userlist'><a href='#' onClick={this.props.toggleMode}>Meals</a></li> )
break
case 'manager':
items.push( <li key='userlist'><a href='#' onClick={this.props.toggleMode}>Users</a></li> )
items.push( <li key='userlist'><a href='#' onClick={this.props.toggleMode}>Meals</a></li> )
case 'user':
break
}
items.push( <li key='logout'><a href='#' onClick={this.logout}>Logout</a></li> )
return (
<div>
<ul className='menu'>
{items}
</ul>
</div>
)
// <ProfileModal user={user} visible={false} onClose={() => {}} />
}
}
// class ProfileModal extends React.Component {
// render() {
// return (
// <ModalDialog visible={this.props.visible} onClose={this.props.onClose}>
// </ModalDialog>
// )
// }
// }
|