質問編集履歴
5
誤字の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -149,7 +149,7 @@
|
|
149
149
|
export default DrawerItems
|
150
150
|
```
|
151
151
|
## 追記2
|
152
|
-
DrawerItemsはMaterial-UIのDrawerの中のリストとしてインポートしています。(3行目)
|
152
|
+
DrawerItemsはMaterial-UIのDrawerの中のリストとしてインポートしています。(下から3行目)
|
153
153
|
```
|
154
154
|
略。。。
|
155
155
|
<IconButton
|
4
追記の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -148,8 +148,40 @@
|
|
148
148
|
|
149
149
|
export default DrawerItems
|
150
150
|
```
|
151
|
-
|
152
151
|
## 追記2
|
152
|
+
DrawerItemsはMaterial-UIのDrawerの中のリストとしてインポートしています。(3行目)
|
153
|
+
```
|
154
|
+
略。。。
|
155
|
+
<IconButton
|
156
|
+
color="inherit"
|
157
|
+
aria-label="open drawer"
|
158
|
+
edge="start"
|
159
|
+
onClick={handleDrawerToggle}
|
160
|
+
>
|
161
|
+
<MenuIcon />
|
162
|
+
</IconButton>
|
163
|
+
<nav aria-label="menu">
|
164
|
+
{/* The implementation can be swapped with js to avoid SEO duplication of Styledlinks. */}
|
165
|
+
<Hidden smUp implementation="css">
|
166
|
+
<Drawer
|
167
|
+
variant="temporary"
|
168
|
+
anchor="left"
|
169
|
+
open={open}
|
170
|
+
onClose={handleDrawerToggle}
|
171
|
+
ModalProps={{
|
172
|
+
keepMounted: true, // Better open performance on mobile.
|
173
|
+
}}
|
174
|
+
classes={{
|
175
|
+
paper: classes.drawerPaper,
|
176
|
+
}}
|
177
|
+
>
|
178
|
+
<div className={classes.toolbar} />
|
179
|
+
<Divider />
|
180
|
+
<DrawerItems />
|
181
|
+
</Drawer>
|
182
|
+
</Hidden>
|
183
|
+
```
|
184
|
+
## 追記3
|
153
185
|
<List onClick={dispatch(actions.jwtLogout)}>の前に、console.log(dispatch)とconsole.log(dispatch(actions.jwtLogout))を実行したところ下記の様に表示されました。
|
154
186
|
```
|
155
187
|
ƒ (action) {
|
3
追記2の編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -150,7 +150,7 @@
|
|
150
150
|
```
|
151
151
|
|
152
152
|
## 追記2
|
153
|
-
<List onClick={dispatch(actions.jwtLogout)}>の前に、console.log(dispatch)を実行したところ下記の様に表示されました。
|
153
|
+
<List onClick={dispatch(actions.jwtLogout)}>の前に、console.log(dispatch)とconsole.log(dispatch(actions.jwtLogout))を実行したところ下記の様に表示されました。
|
154
154
|
```
|
155
155
|
ƒ (action) {
|
156
156
|
if (typeof action === 'function') {
|
@@ -159,4 +159,13 @@
|
|
159
159
|
|
160
160
|
return next(action);
|
161
161
|
}
|
162
|
+
```
|
163
|
+
```
|
164
|
+
async dispatch => {
|
165
|
+
// TODO: gRpcログアウト && try-catch
|
166
|
+
dispatch({
|
167
|
+
type: _utils_actionTypes__WEBPACK_IMPORTED_MODULE_0__["START_REQUEST"]
|
168
|
+
});
|
169
|
+
console.log('Logout');
|
170
|
+
localStorage…
|
162
171
|
```
|
2
追記2
title
CHANGED
File without changes
|
body
CHANGED
@@ -147,4 +147,16 @@
|
|
147
147
|
`
|
148
148
|
|
149
149
|
export default DrawerItems
|
150
|
+
```
|
151
|
+
|
152
|
+
## 追記2
|
153
|
+
<List onClick={dispatch(actions.jwtLogout)}>の前に、console.log(dispatch)を実行したところ下記の様に表示されました。
|
154
|
+
```
|
155
|
+
ƒ (action) {
|
156
|
+
if (typeof action === 'function') {
|
157
|
+
return action(dispatch, getState, extraArgument);
|
158
|
+
}
|
159
|
+
|
160
|
+
return next(action);
|
161
|
+
}
|
150
162
|
```
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -74,4 +74,77 @@
|
|
74
74
|
dispatch(setNotification('success', 'ログアウト成功!'))
|
75
75
|
}
|
76
76
|
}
|
77
|
+
```
|
78
|
+
##追記
|
79
|
+
Material-UIでDrawerの中身をログイン時と非ログイン時で分けているのですが、非ログイン時に表示されるログアウト項目をクリックするとjwtLogoutが発火するというイメージです。
|
80
|
+
```TypeSciript
|
81
|
+
略。。。
|
82
|
+
|
83
|
+
const DrawerItems: React.FC = () => {
|
84
|
+
const [open, setOpen] = React.useState(false)
|
85
|
+
const dispatch = useDispatch()
|
86
|
+
|
87
|
+
const isAuthenticated = useSelector((state: any) => state.AuthReducer.isAuthenticated)
|
88
|
+
|
89
|
+
const handleDrawerToggle = () => {
|
90
|
+
setOpen(!open)
|
91
|
+
}
|
92
|
+
const openLoginDialog = () => {
|
93
|
+
dispatch({ type: actionTypes.OPEN_LOGIN_DIALOG })
|
94
|
+
handleDrawerToggle()
|
95
|
+
}
|
96
|
+
|
97
|
+
const unAuthenticated = (
|
98
|
+
略。。。
|
99
|
+
)
|
100
|
+
|
101
|
+
const authenticated = (
|
102
|
+
<>
|
103
|
+
略。。。
|
104
|
+
<List onClick={handleDrawerToggle}>
|
105
|
+
<StyledLink to="/mypage">
|
106
|
+
<ListItem button>
|
107
|
+
<ListItemIcon>
|
108
|
+
<AccountCircle />
|
109
|
+
</ListItemIcon>
|
110
|
+
<ListItemText primary="マイページ" />
|
111
|
+
</ListItem>
|
112
|
+
</StyledLink>
|
113
|
+
</List>
|
114
|
+
<List onClick={dispatch(actions.jwtLogout)}>
|
115
|
+
<StyledLink to="/logout">
|
116
|
+
<ListItem button>
|
117
|
+
<ListItemIcon>
|
118
|
+
<Lock />
|
119
|
+
</ListItemIcon>
|
120
|
+
<ListItemText primary="ログアウト" />
|
121
|
+
</ListItem>
|
122
|
+
</StyledLink>
|
123
|
+
</List>
|
124
|
+
<List onClick={handleDrawerToggle}>
|
125
|
+
<StyledLink to="/about">
|
126
|
+
<ListItem button>
|
127
|
+
<ListItemIcon>
|
128
|
+
<InfoIcon />
|
129
|
+
</ListItemIcon>
|
130
|
+
<ListItemText primary="自動販売機とは" />
|
131
|
+
</ListItem>
|
132
|
+
</StyledLink>
|
133
|
+
</List>
|
134
|
+
</>
|
135
|
+
)
|
136
|
+
|
137
|
+
return (
|
138
|
+
<>
|
139
|
+
{ isAuthenticated === true ? authenticated : unAuthenticated }
|
140
|
+
</>
|
141
|
+
)
|
142
|
+
}
|
143
|
+
|
144
|
+
const StyledLink = styled(Link)`
|
145
|
+
text-decoration: none;
|
146
|
+
color: black;
|
147
|
+
`
|
148
|
+
|
149
|
+
export default DrawerItems
|
77
150
|
```
|