Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfccacfe

Browse files
committed
Merge status checking from workspace page
1 parent191c9d7 commitfccacfe

File tree

5 files changed

+60
-46
lines changed

5 files changed

+60
-46
lines changed

‎site/src/components/Workspace/Workspace.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { makeStyles } from "@material-ui/core/styles"
22
importTypographyfrom"@material-ui/core/Typography"
33
importReactfrom"react"
44
import*asTypesGenfrom"../../api/typesGenerated"
5-
import{WorkspaceStatus}from"../../pages/WorkspacePage/WorkspacePage"
5+
import{WorkspaceStatus}from"../../util/workspace"
66
import{WorkspaceSchedule}from"../WorkspaceSchedule/WorkspaceSchedule"
77
import{WorkspaceSection}from"../WorkspaceSection/WorkspaceSection"
88
import{WorkspaceStatusBar}from"../WorkspaceStatusBar/WorkspaceStatusBar"

‎site/src/components/WorkspaceStatusBar/WorkspaceStatusBar.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export const Language = {
2121
stopped:"Stopped",
2222
starting:"Building",
2323
stopping:"Stopping",
24+
canceled:"Canceled",
25+
queued:"Queued",
2426
error:"Build Failed",
2527
loading:"Loading Status",
2628
deleting:"Deleting",

‎site/src/pages/WorkspacePage/WorkspacePage.tsx

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,8 @@ import { Margins } from "../../components/Margins/Margins"
77
import{Stack}from"../../components/Stack/Stack"
88
import{Workspace}from"../../components/Workspace/Workspace"
99
import{firstOrItem}from"../../util/array"
10+
import{getWorkspaceStatus}from"../../util/workspace"
1011
import{XServiceContext}from"../../xServices/StateContext"
11-
import{selectWorkspaceStatus}from"../../xServices/workspace/workspaceSelectors"
12-
13-
exporttypeWorkspaceStatus=
14-
|"started"
15-
|"starting"
16-
|"stopped"
17-
|"stopping"
18-
|"error"
19-
|"loading"
20-
|"deleting"
21-
|"deleted"
22-
|"canceling"
2312

2413
exportconstWorkspacePage:React.FC=()=>{
2514
const{workspace:workspaceQueryParam}=useParams()
@@ -29,7 +18,9 @@ export const WorkspacePage: React.FC = () => {
2918
const[workspaceState,workspaceSend]=useActor(xServices.workspaceXService)
3019
const{ workspace, template, organization, getWorkspaceError, getTemplateError, getOrganizationError}=
3120
workspaceState.context
32-
constworkspaceStatus=useSelector(xServices.workspaceXService,selectWorkspaceStatus)
21+
constworkspaceStatus=useSelector(xServices.workspaceXService,(state)=>{
22+
returngetWorkspaceStatus(state.context.workspace?.latest_build)
23+
})
3324

3425
/**
3526
* Get workspace, template, and organization on mount and whenever workspaceId changes.

‎site/src/pages/WorkspacesPage/WorkspacesPageView.tsx

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { WorkspaceBuild } from "../../api/typesGenerated"
1818
import{Margins}from"../../components/Margins/Margins"
1919
import{Stack}from"../../components/Stack/Stack"
2020
import{firstLetter}from"../../util/firstLetter"
21+
import{getWorkspaceStatus}from"../../util/workspace"
2122

2223
dayjs.extend(relativeTime)
2324

@@ -106,42 +107,50 @@ export const WorkspacesPageView: React.FC<WorkspacesPageViewProps> = (props) =>
106107
constgetStatus=(theme:Theme,build:WorkspaceBuild):JSX.Element=>{
107108
letstatus=""
108109
letcolor=""
109-
constinProgress=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"
127115
break
128-
case"canceled":
116+
case"starting":
117+
color=theme.palette.success.main
118+
status="⦿ Starting"
119+
break
120+
case"stopping":
129121
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"
131135
break
132136
case"canceling":
133-
color=theme.palette.warning.main
137+
color=theme.palette.warning.light
134138
status="◍ Canceling"
135139
break
136-
case"failed":
140+
case"canceled":
141+
color=theme.palette.text.secondary
142+
status="◍ Canceled"
143+
break
144+
case"error":
137145
color=theme.palette.error.main
138146
status="ⓧ Failed"
139147
break
140-
case"pending":
148+
case"queued":
141149
color=theme.palette.text.secondary
142150
status="◍ Queued"
143151
break
144152
}
153+
145154
return<spanstyle={{color:color}}>{status}</span>
146155
}
147156

‎site/src/xServices/workspace/workspaceSelectors.tsrenamed to‎site/src/util/workspace.ts

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
1-
import{State}from"xstate"
2-
import{WorkspaceBuildTransition}from"../../api/types"
3-
import{WorkspaceStatus}from"../../pages/WorkspacePage/WorkspacePage"
4-
import{WorkspaceContext,WorkspaceEvent}from"./workspaceXService"
1+
import{WorkspaceBuildTransition}from"../api/types"
2+
import{WorkspaceBuild}from"../api/typesGenerated"
3+
4+
exporttypeWorkspaceStatus=
5+
|"queued"
6+
|"started"
7+
|"starting"
8+
|"stopped"
9+
|"stopping"
10+
|"error"
11+
|"loading"
12+
|"deleting"
13+
|"deleted"
14+
|"canceled"
15+
|"canceling"
516

617
constinProgressToStatus:Record<WorkspaceBuildTransition,WorkspaceStatus>={
718
start:"starting",
@@ -15,22 +26,23 @@ const succeededToStatus: Record<WorkspaceBuildTransition, WorkspaceStatus> = {
1526
delete:"deleted",
1627
}
1728

18-
exportconstselectWorkspaceStatus=(state:State<WorkspaceContext,WorkspaceEvent>):WorkspaceStatus=>{
19-
consttransition=state.context.workspace?.latest_build.transitionasWorkspaceBuildTransition
20-
constjobStatus=state.context.workspace?.latest_build.job.status
29+
// Converts a workspaces status to a human-readable form.
30+
exportconstgetWorkspaceStatus=(workspaceBuild?:WorkspaceBuild):WorkspaceStatus=>{
31+
consttransition=workspaceBuild?.transitionasWorkspaceBuildTransition
32+
constjobStatus=workspaceBuild?.job.status
2133
switch(jobStatus){
2234
caseundefined:
2335
return"loading"
2436
case"succeeded":
2537
returnsucceededToStatus[transition]
2638
case"pending":
27-
returninProgressToStatus[transition]
39+
return"queued"
2840
case"running":
2941
returninProgressToStatus[transition]
3042
case"canceling":
3143
return"canceling"
3244
case"canceled":
33-
return"error"
45+
return"canceled"
3446
case"failed":
3547
return"error"
3648
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp