1
+ import { type Interpolation , type Theme } from "@emotion/react" ;
1
2
import Tooltip from "@mui/material/Tooltip" ;
2
- import { makeStyles } from "@mui/styles" ;
3
- import { combineClasses } from "utils/combineClasses" ;
4
3
import { WorkspaceAgent } from "api/typesGenerated" ;
5
4
import { ChooseOne , Cond } from "components/Conditionals/ChooseOne" ;
6
5
import WarningRounded from "@mui/icons-material/WarningRounded" ;
@@ -19,27 +18,23 @@ import Link from "@mui/material/Link";
19
18
// connected:shutdown_error, connected:off.
20
19
21
20
const ReadyLifecycle = ( ) => {
22
- const styles = useStyles ( ) ;
23
-
24
21
return (
25
22
< div
26
23
role = "status"
27
24
data-testid = "agent-status-ready"
28
25
aria-label = "Ready"
29
- className = { combineClasses ( [ styles . status , styles . connected ] ) }
26
+ css = { [ styles . status , styles . connected ] }
30
27
/>
31
28
) ;
32
29
} ;
33
30
34
31
const StartingLifecycle : React . FC = ( ) => {
35
- const styles = useStyles ( ) ;
36
-
37
32
return (
38
33
< Tooltip title = "Starting..." >
39
34
< div
40
35
role = "status"
41
36
aria-label = "Starting..."
42
- className = { combineClasses ( [ styles . status , styles . connecting ] ) }
37
+ css = { [ styles . status , styles . connecting ] }
43
38
/>
44
39
</ Tooltip >
45
40
) ;
@@ -48,7 +43,6 @@ const StartingLifecycle: React.FC = () => {
48
43
const StartTimeoutLifecycle : React . FC < {
49
44
agent : WorkspaceAgent ;
50
45
} > = ( { agent } ) => {
51
- const styles = useStyles ( ) ;
52
46
const anchorRef = useRef < SVGSVGElement > ( null ) ;
53
47
const [ isOpen , setIsOpen ] = useState ( false ) ;
54
48
const id = isOpen ? "timeout-popover" : undefined ;
@@ -61,7 +55,7 @@ const StartTimeoutLifecycle: React.FC<{
61
55
onMouseLeave = { ( ) => setIsOpen ( false ) }
62
56
role = "status"
63
57
aria-label = "Start timeout"
64
- className = { styles . timeoutWarning }
58
+ css = { styles . timeoutWarning }
65
59
/>
66
60
< HelpPopover
67
61
id = { id }
@@ -90,7 +84,6 @@ const StartTimeoutLifecycle: React.FC<{
90
84
const StartErrorLifecycle : React . FC < {
91
85
agent : WorkspaceAgent ;
92
86
} > = ( { agent } ) => {
93
- const styles = useStyles ( ) ;
94
87
const anchorRef = useRef < SVGSVGElement > ( null ) ;
95
88
const [ isOpen , setIsOpen ] = useState ( false ) ;
96
89
const id = isOpen ? "timeout-popover" : undefined ;
@@ -103,7 +96,7 @@ const StartErrorLifecycle: React.FC<{
103
96
onMouseLeave = { ( ) => setIsOpen ( false ) }
104
97
role = "status"
105
98
aria-label = "Start error"
106
- className = { styles . errorWarning }
99
+ css = { styles . errorWarning }
107
100
/>
108
101
< HelpPopover
109
102
id = { id }
@@ -130,14 +123,12 @@ const StartErrorLifecycle: React.FC<{
130
123
} ;
131
124
132
125
const ShuttingDownLifecycle : React . FC = ( ) => {
133
- const styles = useStyles ( ) ;
134
-
135
126
return (
136
127
< Tooltip title = "Stopping..." >
137
128
< div
138
129
role = "status"
139
130
aria-label = "Stopping..."
140
- className = { combineClasses ( [ styles . status , styles . connecting ] ) }
131
+ css = { [ styles . status , styles . connecting ] }
141
132
/>
142
133
</ Tooltip >
143
134
) ;
@@ -146,7 +137,6 @@ const ShuttingDownLifecycle: React.FC = () => {
146
137
const ShutdownTimeoutLifecycle : React . FC < {
147
138
agent : WorkspaceAgent ;
148
139
} > = ( { agent } ) => {
149
- const styles = useStyles ( ) ;
150
140
const anchorRef = useRef < SVGSVGElement > ( null ) ;
151
141
const [ isOpen , setIsOpen ] = useState ( false ) ;
152
142
const id = isOpen ? "timeout-popover" : undefined ;
@@ -159,7 +149,7 @@ const ShutdownTimeoutLifecycle: React.FC<{
159
149
onMouseLeave = { ( ) => setIsOpen ( false ) }
160
150
role = "status"
161
151
aria-label = "Stop timeout"
162
- className = { styles . timeoutWarning }
152
+ css = { styles . timeoutWarning }
163
153
/>
164
154
< HelpPopover
165
155
id = { id }
@@ -188,7 +178,6 @@ const ShutdownTimeoutLifecycle: React.FC<{
188
178
const ShutdownErrorLifecycle : React . FC < {
189
179
agent : WorkspaceAgent ;
190
180
} > = ( { agent } ) => {
191
- const styles = useStyles ( ) ;
192
181
const anchorRef = useRef < SVGSVGElement > ( null ) ;
193
182
const [ isOpen , setIsOpen ] = useState ( false ) ;
194
183
const id = isOpen ? "timeout-popover" : undefined ;
@@ -201,7 +190,7 @@ const ShutdownErrorLifecycle: React.FC<{
201
190
onMouseLeave = { ( ) => setIsOpen ( false ) }
202
191
role = "status"
203
192
aria-label = "Stop error"
204
- className = { styles . errorWarning }
193
+ css = { styles . errorWarning }
205
194
/>
206
195
< HelpPopover
207
196
id = { id }
@@ -228,14 +217,12 @@ const ShutdownErrorLifecycle: React.FC<{
228
217
} ;
229
218
230
219
const OffLifecycle : React . FC = ( ) => {
231
- const styles = useStyles ( ) ;
232
-
233
220
return (
234
221
< Tooltip title = "Stopped" >
235
222
< div
236
223
role = "status"
237
224
aria-label = "Stopped"
238
- className = { combineClasses ( [ styles . status , styles . disconnected ] ) }
225
+ css = { [ styles . status , styles . disconnected ] }
239
226
/>
240
227
</ Tooltip >
241
228
) ;
@@ -280,28 +267,24 @@ const ConnectedStatus: React.FC<{
280
267
} ;
281
268
282
269
const DisconnectedStatus : React . FC = ( ) => {
283
- const styles = useStyles ( ) ;
284
-
285
270
return (
286
271
< Tooltip title = "Disconnected" >
287
272
< div
288
273
role = "status"
289
274
aria-label = "Disconnected"
290
- className = { combineClasses ( [ styles . status , styles . disconnected ] ) }
275
+ css = { [ styles . status , styles . disconnected ] }
291
276
/>
292
277
</ Tooltip >
293
278
) ;
294
279
} ;
295
280
296
281
const ConnectingStatus : React . FC = ( ) => {
297
- const styles = useStyles ( ) ;
298
-
299
282
return (
300
283
< Tooltip title = "Connecting..." >
301
284
< div
302
285
role = "status"
303
286
aria-label = "Connecting..."
304
- className = { combineClasses ( [ styles . status , styles . connecting ] ) }
287
+ css = { [ styles . status , styles . connecting ] }
305
288
/>
306
289
</ Tooltip >
307
290
) ;
@@ -310,7 +293,6 @@ const ConnectingStatus: React.FC = () => {
310
293
const TimeoutStatus : React . FC < {
311
294
agent : WorkspaceAgent ;
312
295
} > = ( { agent } ) => {
313
- const styles = useStyles ( ) ;
314
296
const anchorRef = useRef < SVGSVGElement > ( null ) ;
315
297
const [ isOpen , setIsOpen ] = useState ( false ) ;
316
298
const id = isOpen ? "timeout-popover" : undefined ;
@@ -323,7 +305,7 @@ const TimeoutStatus: React.FC<{
323
305
onMouseLeave = { ( ) => setIsOpen ( false ) }
324
306
role = "status"
325
307
aria-label = "Timeout"
326
- className = { styles . timeoutWarning }
308
+ css = { styles . timeoutWarning }
327
309
/>
328
310
< HelpPopover
329
311
id = { id }
@@ -370,22 +352,22 @@ export const AgentStatus: React.FC<{
370
352
) ;
371
353
} ;
372
354
373
- const useStyles = makeStyles ( ( theme ) => ( {
374
- status : {
355
+ const styles = {
356
+ status : ( theme ) => ( {
375
357
width : theme . spacing ( 1 ) ,
376
358
height : theme . spacing ( 1 ) ,
377
359
borderRadius : "100%" ,
378
360
flexShrink : 0 ,
379
- } ,
361
+ } ) ,
380
362
381
- connected : {
363
+ connected : ( theme ) => ( {
382
364
backgroundColor : theme . palette . success . light ,
383
365
boxShadow : `0 0 12px 0 ${ theme . palette . success . light } ` ,
384
- } ,
366
+ } ) ,
385
367
386
- disconnected : {
368
+ disconnected : ( theme ) => ( {
387
369
backgroundColor : theme . palette . text . secondary ,
388
- } ,
370
+ } ) ,
389
371
390
372
"@keyframes pulse" : {
391
373
"0%" : {
@@ -399,22 +381,22 @@ const useStyles = makeStyles((theme) => ({
399
381
} ,
400
382
} ,
401
383
402
- connecting : {
384
+ connecting : ( theme ) => ( {
403
385
backgroundColor : theme . palette . info . light ,
404
386
animation : "$pulse 1.5s 0.5s ease-in-out forwards infinite" ,
405
- } ,
387
+ } ) ,
406
388
407
- timeoutWarning : {
389
+ timeoutWarning : ( theme ) => ( {
408
390
color : theme . palette . warning . light ,
409
391
width : theme . spacing ( 2 ) ,
410
392
height : theme . spacing ( 2 ) ,
411
393
position : "relative" ,
412
- } ,
394
+ } ) ,
413
395
414
- errorWarning : {
396
+ errorWarning : ( theme ) => ( {
415
397
color : theme . palette . error . main ,
416
398
width : theme . spacing ( 2 ) ,
417
399
height : theme . spacing ( 2 ) ,
418
400
position : "relative" ,
419
- } ,
420
- } ) ) ;
401
+ } ) ,
402
+ } satisfies Record < string , Interpolation < Theme > > ;
0 commit comments