Skip to content

Commit 2931b60

Browse files
committed
x state pass
1 parent 2e26ef4 commit 2931b60

File tree

5 files changed

+37
-10
lines changed

5 files changed

+37
-10
lines changed

site/src/api/api.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,11 @@ export const getTemplateVersionResources = async (versionId: string): Promise<Ty
108108
return response.data
109109
}
110110

111-
export const getWorkspace = async (workspaceId: string, params?: any): Promise<TypesGen.Workspace> => {
112-
console.log("in here", params)
111+
export const getWorkspace = async (
112+
workspaceId: string,
113+
params?: TypesGen.WorkspaceOptions,
114+
): Promise<TypesGen.Workspace> => {
115+
console.log("in get Workspace API method", params)
113116
const response = await axios.get<TypesGen.Workspace>(`/api/v2/workspaces/${workspaceId}`, { params })
114117
return response.data
115118
}

site/src/components/Workspace/Workspace.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ export const Workspace: FC<WorkspaceProps> = ({
4646
builds,
4747
}) => {
4848
const styles = useStyles()
49-
console.log("workspace", workspace)
5049
const isDeleted = getWorkspaceStatus(workspace.latest_build) === succeededToStatus["delete"]
51-
console.log("isDeleted", isDeleted)
5250
return (
5351
<Margins>
5452
<PageHeader

site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const shouldDisplay = (workspace: TypesGen.Workspace): boolean => {
2626
if (!isWorkspaceOn(workspace)) {
2727
return false
2828
} else {
29-
// a mannual shutdown has a deadline of '"0001-01-01T00:00:00Z"'
29+
// a manual shutdown has a deadline of '"0001-01-01T00:00:00Z"'
3030
// SEE: #1834
3131
const deadline = dayjs(workspace.latest_build.deadline).utc()
3232
const hasDeadline = deadline.year() > 1

site/src/pages/WorkspacePage/WorkspacePage.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useMachine } from "@xstate/react"
22
import React, { useEffect } from "react"
33
import { Helmet } from "react-helmet"
4-
import { useNavigate, useParams } from "react-router-dom"
4+
import { useParams } from "react-router-dom"
55
import { DeleteWorkspaceDialog } from "../../components/DeleteWorkspaceDialog/DeleteWorkspaceDialog"
66
import { ErrorSummary } from "../../components/ErrorSummary/ErrorSummary"
77
import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
@@ -13,7 +13,6 @@ import { workspaceScheduleBannerMachine } from "../../xServices/workspaceSchedul
1313

1414
export const WorkspacePage: React.FC = () => {
1515
const { username: usernameQueryParam, workspace: workspaceQueryParam } = useParams()
16-
const navigate = useNavigate()
1716
const username = firstOrItem(usernameQueryParam, null)
1817
const workspaceName = firstOrItem(workspaceQueryParam, null)
1918

@@ -63,7 +62,6 @@ export const WorkspacePage: React.FC = () => {
6362
handleCancel={() => workspaceSend("CANCEL_DELETE")}
6463
handleConfirm={() => {
6564
workspaceSend("DELETE")
66-
navigate("/workspaces")
6765
}}
6866
/>
6967
</>

site/src/xServices/workspace/workspaceXService.ts

+30-2
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ export const workspaceMachine = createMachine(
5858
getWorkspace: {
5959
data: TypesGen.Workspace
6060
}
61+
getDeletedWorkspace: {
62+
data: TypesGen.Workspace
63+
}
6164
getTemplate: {
6265
data: TypesGen.Template
6366
}
@@ -93,6 +96,9 @@ export const workspaceMachine = createMachine(
9396
idle: {
9497
tags: "loading",
9598
},
99+
deleted: {
100+
tags: "deleted",
101+
},
96102
gettingWorkspace: {
97103
entry: ["clearGetWorkspaceError", "clearContext"],
98104
invoke: {
@@ -183,10 +189,10 @@ export const workspaceMachine = createMachine(
183189
requestingDelete: {
184190
entry: "clearBuildError",
185191
invoke: {
186-
id: "deleteWorkspace",
192+
id: "deleteWorkspace", // delete the workspace
187193
src: "deleteWorkspace",
188194
onDone: {
189-
target: "idle",
195+
target: "gettingDeletedWorkspace",
190196
actions: ["assignBuild", "refreshTimeline"],
191197
},
192198
onError: {
@@ -195,6 +201,21 @@ export const workspaceMachine = createMachine(
195201
},
196202
},
197203
},
204+
gettingDeletedWorkspace: {
205+
entry: ["clearGetWorkspaceError", "clearContext"],
206+
invoke: {
207+
id: "getDeletedWorkspace", // request deleted workspace
208+
src: "getDeletedWorkspace",
209+
onDone: {
210+
target: "idle",
211+
actions: ["assignBuild", "refreshTimeline"],
212+
},
213+
onError: {
214+
target: "idle", // error
215+
actions: ["assignBuildError", "displayBuildError"],
216+
},
217+
},
218+
},
198219
requestingCancel: {
199220
entry: "clearCancellationMessage",
200221
invoke: {
@@ -433,6 +454,13 @@ export const workspaceMachine = createMachine(
433454
getWorkspace: async (_, event) => {
434455
return await API.getWorkspaceByOwnerAndName(event.username, event.workspaceName)
435456
},
457+
getDeletedWorkspace: async (context) => {
458+
if (context.workspace) {
459+
return await API.getWorkspace(context.workspace.id, { deleted: true })
460+
} else {
461+
throw Error("Cannot get workspace without id")
462+
}
463+
},
436464
getTemplate: async (context) => {
437465
if (context.workspace) {
438466
return await API.getTemplate(context.workspace.template_id)

0 commit comments

Comments
 (0)