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

Commit9b70a9b

Browse files
authored
Fix: fix Workspace storybook and remove unnecessary fetching from xService (#1682)
* Make workspace machine ephemeral to limit polling* Fix Workspace storybook* Lint* Remove breadcrumb from workspaceXService
1 parent4ba3eed commit9b70a9b

File tree

6 files changed

+29
-85
lines changed

6 files changed

+29
-85
lines changed

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

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,17 @@ import { action } from "@storybook/addon-actions"
22
import{Story}from"@storybook/react"
33
importReactfrom"react"
44
import{
5+
MockCanceledWorkspace,
6+
MockCancelingWorkspace,
7+
MockDeletedWorkspace,
8+
MockDeletingWorkspace,
9+
MockFailedWorkspace,
510
MockOutdatedWorkspace,
11+
MockStartingWorkspace,
12+
MockStoppedWorkspace,
13+
MockStoppingWorkspace,
614
MockWorkspace,
15+
MockWorkspaceBuild,
716
MockWorkspaceResource,
817
MockWorkspaceResource2,
918
}from"../../testHelpers/renderHelpers"
@@ -23,36 +32,33 @@ Started.args = {
2332
handleStart:action("start"),
2433
handleStop:action("stop"),
2534
handleRetry:action("retry"),
26-
workspaceStatus:"started",
2735
resources:[MockWorkspaceResource,MockWorkspaceResource2],
36+
builds:[MockWorkspaceBuild],
2837
}
2938

3039
exportconstStarting=Template.bind({})
31-
Starting.args={ ...Started.args,workspaceStatus:"starting"}
40+
Starting.args={ ...Started.args,workspace:MockStartingWorkspace}
3241

3342
exportconstStopped=Template.bind({})
34-
Stopped.args={ ...Started.args,workspaceStatus:"stopped"}
43+
Stopped.args={ ...Started.args,workspace:MockStoppedWorkspace}
3544

3645
exportconstStopping=Template.bind({})
37-
Stopping.args={ ...Started.args,workspaceStatus:"stopping"}
46+
Stopping.args={ ...Started.args,workspace:MockStoppingWorkspace}
3847

3948
exportconstError=Template.bind({})
40-
Error.args={ ...Started.args,workspaceStatus:"error"}
41-
42-
exportconstBuildLoading=Template.bind({})
43-
BuildLoading.args={ ...Started.args,workspaceStatus:"loading"}
49+
Error.args={ ...Started.args,workspace:MockFailedWorkspace}
4450

4551
exportconstDeleting=Template.bind({})
46-
Deleting.args={ ...Started.args,workspaceStatus:"deleting"}
52+
Deleting.args={ ...Started.args,workspace:MockDeletingWorkspace}
4753

4854
exportconstDeleted=Template.bind({})
49-
Deleted.args={ ...Started.args,workspaceStatus:"deleted"}
55+
Deleted.args={ ...Started.args,workspace:MockDeletedWorkspace}
5056

5157
exportconstCanceling=Template.bind({})
52-
Canceling.args={ ...Started.args,workspaceStatus:"canceling"}
58+
Canceling.args={ ...Started.args,workspace:MockCancelingWorkspace}
5359

54-
exportconstNoBreadcrumb=Template.bind({})
55-
NoBreadcrumb.args={ ...Started.args,template:undefined}
60+
exportconstCanceled=Template.bind({})
61+
Canceled.args={ ...Started.args,workspace:MockCanceledWorkspace}
5662

5763
exportconstOutdated=Template.bind({})
5864
Outdated.args={ ...Started.args,workspace:MockOutdatedWorkspace}

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import Typography from "@material-ui/core/Typography"
33
importReactfrom"react"
44
import*asTypesGenfrom"../../api/typesGenerated"
55
import{MONOSPACE_FONT_FAMILY}from"../../theme/constants"
6-
import{WorkspaceStatus}from"../../util/workspace"
76
import{BuildsTable}from"../BuildsTable/BuildsTable"
87
import{Resources}from"../Resources/Resources"
98
import{Stack}from"../Stack/Stack"
@@ -18,7 +17,6 @@ export interface WorkspaceProps {
1817
handleRetry:()=>void
1918
handleUpdate:()=>void
2019
workspace:TypesGen.Workspace
21-
workspaceStatus:WorkspaceStatus
2220
resources?:TypesGen.WorkspaceResource[]
2321
getResourcesError?:Error
2422
builds?:TypesGen.WorkspaceBuild[]
@@ -33,7 +31,6 @@ export const Workspace: React.FC<WorkspaceProps> = ({
3331
handleRetry,
3432
handleUpdate,
3533
workspace,
36-
workspaceStatus,
3734
resources,
3835
getResourcesError,
3936
builds,
@@ -60,7 +57,6 @@ export const Workspace: React.FC<WorkspaceProps> = ({
6057
handleStop={handleStop}
6158
handleRetry={handleRetry}
6259
handleUpdate={handleUpdate}
63-
workspaceStatus={workspaceStatus}
6460
/>
6561
</div>
6662
</div>

‎site/src/components/WorkspaceActions/WorkspaceActions.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import StopIcon from "@material-ui/icons/Stop"
88
importReactfrom"react"
99
import{LinkasRouterLink}from"react-router-dom"
1010
import{Workspace}from"../../api/typesGenerated"
11-
import{WorkspaceStatus}from"../../util/workspace"
11+
import{getWorkspaceStatus,WorkspaceStatus}from"../../util/workspace"
1212
import{Stack}from"../Stack/Stack"
1313
import{WorkspaceActionButton}from"../WorkspaceActionButton/WorkspaceActionButton"
1414

@@ -30,7 +30,6 @@ const canAcceptJobs = (workspaceStatus: WorkspaceStatus) =>
3030

3131
exportinterfaceWorkspaceActionsProps{
3232
workspace:Workspace
33-
workspaceStatus:WorkspaceStatus
3433
handleStart:()=>void
3534
handleStop:()=>void
3635
handleRetry:()=>void
@@ -39,13 +38,13 @@ export interface WorkspaceActionsProps {
3938

4039
exportconstWorkspaceActions:React.FC<WorkspaceActionsProps>=({
4140
workspace,
42-
workspaceStatus,
4341
handleStart,
4442
handleStop,
4543
handleRetry,
4644
handleUpdate,
4745
})=>{
4846
conststyles=useStyles()
47+
constworkspaceStatus=getWorkspaceStatus(workspace.latest_build)
4948

5049
return(
5150
<Stackdirection="row"spacing={1}>

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ 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"
1110
import{workspaceMachine}from"../../xServices/workspace/workspaceXService"
1211

1312
exportconstWorkspacePage:React.FC=()=>{
@@ -16,7 +15,6 @@ export const WorkspacePage: React.FC = () => {
1615

1716
const[workspaceState,workspaceSend]=useMachine(workspaceMachine)
1817
const{ workspace, resources, getWorkspaceError, getResourcesError, builds}=workspaceState.context
19-
constworkspaceStatus=getWorkspaceStatus(workspace?.latest_build)
2018

2119
/**
2220
* Get workspace, template, and organization on mount and whenever workspaceId changes.
@@ -40,7 +38,6 @@ export const WorkspacePage: React.FC = () => {
4038
handleStop={()=>workspaceSend("STOP")}
4139
handleRetry={()=>workspaceSend("RETRY")}
4240
handleUpdate={()=>workspaceSend("UPDATE")}
43-
workspaceStatus={workspaceStatus}
4441
resources={resources}
4542
getResourcesError={getResourcesErrorinstanceofError ?getResourcesError :undefined}
4643
builds={builds}

‎site/src/testHelpers/entities.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ export const MockCancelingProvisionerJob = {
7676
...MockProvisionerJob,
7777
status:"canceling"asTypesGen.ProvisionerJobStatus,
7878
}
79+
exportconstMockCanceledProvisionerJob={
80+
...MockProvisionerJob,
81+
status:"canceled"asTypesGen.ProvisionerJobStatus,
82+
}
7983
exportconstMockRunningProvisionerJob={ ...MockProvisionerJob,status:"running"asTypesGen.ProvisionerJobStatus}
8084

8185
exportconstMockTemplateVersion:TypesGen.TemplateVersion={
@@ -164,6 +168,10 @@ export const MockCancelingWorkspace: TypesGen.Workspace = {
164168
...MockWorkspace,
165169
latest_build:{ ...MockWorkspaceBuild,job:MockCancelingProvisionerJob},
166170
}
171+
exportconstMockCanceledWorkspace:TypesGen.Workspace={
172+
...MockWorkspace,
173+
latest_build:{ ...MockWorkspaceBuild,job:MockCanceledProvisionerJob},
174+
}
167175
exportconstMockFailedWorkspace:TypesGen.Workspace={
168176
...MockWorkspace,
169177
latest_build:{ ...MockWorkspaceBuild,job:MockFailedProvisionerJob},

‎site/src/xServices/workspace/workspaceXService.ts

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ const Language = {
1919
exportinterfaceWorkspaceContext{
2020
workspace?:TypesGen.Workspace
2121
template?:TypesGen.Template
22-
organization?:TypesGen.Organization
2322
build?:TypesGen.WorkspaceBuild
2423
resources?:TypesGen.WorkspaceResource[]
2524
getWorkspaceError?:Error|unknown
26-
getTemplateError?:Error|unknown
27-
getOrganizationError?:Error|unknown
2825
// error creating a new WorkspaceBuild
2926
buildError?:Error|unknown
3027
// these are separate from getX errors because they don't make the page unusable
@@ -59,9 +56,6 @@ export const workspaceMachine = createMachine(
5956
getTemplate:{
6057
data:TypesGen.Template
6158
}
62-
getOrganization:{
63-
data:TypesGen.Organization
64-
}
6559
startWorkspace:{
6660
data:TypesGen.WorkspaceBuild
6761
}
@@ -130,43 +124,6 @@ export const workspaceMachine = createMachine(
130124
},
131125
},
132126
},
133-
breadcrumb:{
134-
initial:"gettingTemplate",
135-
states:{
136-
gettingTemplate:{
137-
invoke:{
138-
src:"getTemplate",
139-
id:"getTemplate",
140-
onDone:{
141-
target:"gettingOrganization",
142-
actions:["assignTemplate","clearGetTemplateError"],
143-
},
144-
onError:{
145-
target:"error",
146-
actions:"assignGetTemplateError",
147-
},
148-
},
149-
tags:"loading",
150-
},
151-
gettingOrganization:{
152-
invoke:{
153-
src:"getOrganization",
154-
id:"getOrganization",
155-
onDone:{
156-
target:"ready",
157-
actions:["assignOrganization","clearGetOrganizationError"],
158-
},
159-
onError:{
160-
target:"error",
161-
actions:"assignGetOrganizationError",
162-
},
163-
},
164-
tags:"loading",
165-
},
166-
error:{},
167-
ready:{},
168-
},
169-
},
170127
build:{
171128
initial:"idle",
172129
states:{
@@ -309,7 +266,6 @@ export const workspaceMachine = createMachine(
309266
assign({
310267
workspace:undefined,
311268
template:undefined,
312-
organization:undefined,
313269
build:undefined,
314270
}),
315271
assignWorkspace:assign({
@@ -322,17 +278,6 @@ export const workspaceMachine = createMachine(
322278
assignTemplate:assign({
323279
template:(_,event)=>event.data,
324280
}),
325-
assignGetTemplateError:assign({
326-
getTemplateError:(_,event)=>event.data,
327-
}),
328-
clearGetTemplateError:(context)=>assign({ ...context,getTemplateError:undefined}),
329-
assignOrganization:assign({
330-
organization:(_,event)=>event.data,
331-
}),
332-
assignGetOrganizationError:assign({
333-
getOrganizationError:(_,event)=>event.data,
334-
}),
335-
clearGetOrganizationError:(context)=>assign({ ...context,getOrganizationError:undefined}),
336281
assignBuild:(_,event)=>
337282
assign({
338283
build:event.data,
@@ -438,13 +383,6 @@ export const workspaceMachine = createMachine(
438383
throwError("Cannot get template without workspace")
439384
}
440385
},
441-
getOrganization:async(context)=>{
442-
if(context.template){
443-
returnawaitAPI.getOrganization(context.template.organization_id)
444-
}else{
445-
throwError("Cannot get organization without template")
446-
}
447-
},
448386
startWorkspace:async(context)=>{
449387
if(context.workspace){
450388
returnawaitAPI.startWorkspace(context.workspace.id,context.template?.active_version_id)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp