1
+ import Box from "@material-ui/core/Box"
1
2
import Paper from "@material-ui/core/Paper"
2
3
import { makeStyles } from "@material-ui/core/styles"
3
4
import Typography from "@material-ui/core/Typography"
4
5
import OpenInNewIcon from "@material-ui/icons/OpenInNew"
5
- import React from "react"
6
+ import React , { useState } from "react"
6
7
import MoreVertIcon from "@material-ui/icons/MoreVert"
7
8
import { QuestionHelp } from "../QuestionHelp"
8
- import { CircularProgress , IconButton , Link } from "@material-ui/core"
9
+ import { CircularProgress , IconButton , Link , Menu , MenuItem } from "@material-ui/core"
9
10
10
11
import { Timeline as TestTimeline } from "../Timeline"
11
12
@@ -62,6 +63,8 @@ const ResourceIconSize = 20
62
63
export const ResourceRow : React . FC < ResourceRowProps > = ( { icon, href, name, status } ) => {
63
64
const styles = useResourceRowStyles ( )
64
65
66
+ const [ menuAnchorEl , setMenuAnchorEl ] = useState < HTMLElement | null > ( null )
67
+
65
68
return (
66
69
< div className = { styles . root } >
67
70
< div className = { styles . iconContainer } >
@@ -87,9 +90,26 @@ export const ResourceRow: React.FC<ResourceRowProps> = ({ icon, href, name, stat
87
90
< StatusIndicator status = { status } />
88
91
</ div >
89
92
< div >
90
- < IconButton size = "small" className = { styles . action } >
93
+ < IconButton size = "small" className = { styles . action } onClick = { ( ev ) => setMenuAnchorEl ( ev . currentTarget ) } >
91
94
< MoreVertIcon fontSize = "inherit" />
92
95
</ IconButton >
96
+
97
+ < Menu anchorEl = { menuAnchorEl } open = { ! ! menuAnchorEl } onClose = { ( ) => setMenuAnchorEl ( undefined ) } >
98
+ < MenuItem
99
+ onClick = { ( ) => {
100
+ setMenuAnchorEl ( undefined )
101
+ } }
102
+ >
103
+ SSH
104
+ </ MenuItem >
105
+ < MenuItem
106
+ onClick = { ( ) => {
107
+ setMenuAnchorEl ( undefined )
108
+ } }
109
+ >
110
+ Remote Desktop
111
+ </ MenuItem >
112
+ </ Menu >
93
113
</ div >
94
114
</ div >
95
115
)
@@ -152,18 +172,27 @@ const useTitleStyles = makeStyles((theme) => ({
152
172
} ,
153
173
} ) )
154
174
175
+ const TitleIconSize = 48
176
+
155
177
export const Workspace : React . FC < WorkspaceProps > = ( { workspace } ) => {
156
178
const styles = useStyles ( )
157
179
158
180
return (
159
181
< div className = { styles . root } >
160
182
< Paper elevation = { 0 } className = { styles . section } >
161
- < Typography variant = "h4" > { workspace . name } </ Typography >
162
- < Typography variant = "body2" color = "textSecondary" >
163
- < Link > test-org</ Link >
164
- { " / " }
165
- < Link > test-project</ Link >
166
- </ Typography >
183
+ < div className = { styles . horizontal } >
184
+ < Box mr = { "1em" } >
185
+ < img src = { "/static/discord-logo.svg" } height = { TitleIconSize } width = { TitleIconSize } />
186
+ </ Box >
187
+ < div className = { styles . vertical } >
188
+ < Typography variant = "h4" > { workspace . name } </ Typography >
189
+ < Typography variant = "body2" color = "textSecondary" >
190
+ < Link > test-org</ Link >
191
+ { " / " }
192
+ < Link > test-project</ Link >
193
+ </ Typography >
194
+ </ div >
195
+ </ div >
167
196
</ Paper >
168
197
< div className = { styles . horizontal } >
169
198
< div className = { styles . sideBar } >
@@ -178,7 +207,7 @@ export const Workspace: React.FC<WorkspaceProps> = ({ workspace }) => {
178
207
< div className = { styles . vertical } >
179
208
< ResourceRow name = { "Code Web" } icon = { "/static/vscode.svg" } href = { "placeholder" } status = { "active" } />
180
209
< ResourceRow name = { "Terminal" } icon = { "/static/terminal.svg" } href = { "placeholder" } status = { "active" } />
181
- < ResourceRow name = { "React App" } icon = { "/static/react-icon.svg" } status = { "active" } />
210
+ < ResourceRow name = { "React App" } icon = { "/static/react-icon.svg" } href = { "placeholder" } status = { "active" } />
182
211
</ div >
183
212
</ Paper >
184
213
< Paper elevation = { 0 } className = { styles . section } >
0 commit comments