@@ -18,6 +18,7 @@ import { WorkspaceBuild } from "../../api/typesGenerated"
18
18
import { Margins } from "../../components/Margins/Margins"
19
19
import { Stack } from "../../components/Stack/Stack"
20
20
import { firstLetter } from "../../util/firstLetter"
21
+ import { getWorkspaceStatus } from "../../util/workspace"
21
22
22
23
dayjs . extend ( relativeTime )
23
24
@@ -106,42 +107,50 @@ export const WorkspacesPageView: React.FC<WorkspacesPageViewProps> = (props) =>
106
107
const getStatus = ( theme : Theme , build : WorkspaceBuild ) : JSX . Element => {
107
108
let status = ""
108
109
let color = ""
109
- const inProgress = build . job . status === "running"
110
- switch ( build . job . status ) {
111
- case "running" :
112
- case "succeeded" :
113
- switch ( build . transition ) {
114
- case "start" :
115
- color = theme . palette . success . main
116
- status = inProgress ? "⦿ Starting" : "⦿ Running"
117
- break
118
- case "stop" :
119
- color = theme . palette . text . secondary
120
- status = inProgress ? "◍ Stopping" : "◍ Stopped"
121
- break
122
- case "delete" :
123
- color = theme . palette . text . secondary
124
- status = inProgress ? "⦸ Deleting" : "⦸ Deleted"
125
- break
126
- }
110
+
111
+ switch ( getWorkspaceStatus ( build ) ) {
112
+ case "started" :
113
+ color = theme . palette . success . main
114
+ status = "⦿ Running"
127
115
break
128
- case "canceled" :
116
+ case "starting" :
117
+ color = theme . palette . success . main
118
+ status = "⦿ Starting"
119
+ break
120
+ case "stopping" :
129
121
color = theme . palette . text . secondary
130
- status = "◍ Canceled"
122
+ status = "◍ Stopping"
123
+ break
124
+ case "stopped" :
125
+ color = theme . palette . text . secondary
126
+ status = "◍ Stopped"
127
+ break
128
+ case "deleting" :
129
+ color = theme . palette . text . secondary
130
+ status = "⦸ Deleting"
131
+ break
132
+ case "deleted" :
133
+ color = theme . palette . text . secondary
134
+ status = "⦸ Deleted"
131
135
break
132
136
case "canceling" :
133
- color = theme . palette . warning . main
137
+ color = theme . palette . warning . light
134
138
status = "◍ Canceling"
135
139
break
136
- case "failed" :
140
+ case "canceled" :
141
+ color = theme . palette . text . secondary
142
+ status = "◍ Canceled"
143
+ break
144
+ case "error" :
137
145
color = theme . palette . error . main
138
146
status = "ⓧ Failed"
139
147
break
140
- case "pending " :
148
+ case "queued " :
141
149
color = theme . palette . text . secondary
142
150
status = "◍ Queued"
143
151
break
144
152
}
153
+
145
154
return < span style = { { color : color } } > { status } </ span >
146
155
}
147
156
0 commit comments