Skip to content

Commit 06abf62

Browse files
committed
Display errors so users know when button presses didn't work
1 parent 39e84d9 commit 06abf62

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

site/src/xServices/workspace/workspaceXService.ts

+17-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { assign, createMachine } from "xstate"
22
import * as API from "../../api/api"
33
import * as TypesGen from "../../api/typesGenerated"
4+
import { displayError } from "../../components/GlobalSnackbar/utils"
5+
6+
const Language = {
7+
refreshTemplateError: "Error updating workspace: latest template could not be fetched.",
8+
buildError: "Workspace action failed."
9+
}
410

511
export interface WorkspaceContext {
612
workspace?: TypesGen.Workspace
@@ -10,8 +16,6 @@ export interface WorkspaceContext {
1016
getWorkspaceError?: Error | unknown
1117
getTemplateError?: Error | unknown
1218
getOrganizationError?: Error | unknown
13-
// error enqueuing a ProvisionerJob to create a new WorkspaceBuild
14-
jobError?: Error | unknown
1519
// error creating a new WorkspaceBuild
1620
buildError?: Error | unknown
1721
// these are separate from getX errors because they don't make the page unusable
@@ -160,7 +164,7 @@ export const workspaceMachine = createMachine(
160164
},
161165
onError: {
162166
target: "idle",
163-
actions: "assignBuildError",
167+
actions: ["assignBuildError", "displayBuildError"],
164168
},
165169
},
166170
},
@@ -175,7 +179,7 @@ export const workspaceMachine = createMachine(
175179
},
176180
onError: {
177181
target: "idle",
178-
actions: "assignBuildError",
182+
actions: ["assignBuildError", "displayBuildError"],
179183
},
180184
},
181185
},
@@ -190,7 +194,7 @@ export const workspaceMachine = createMachine(
190194
},
191195
onError: {
192196
target: "idle",
193-
actions: "assignRefreshTemplateError",
197+
actions: ["assignRefreshTemplateError", "displayRefreshTemplateError"],
194198
},
195199
},
196200
},
@@ -244,6 +248,9 @@ export const workspaceMachine = createMachine(
244248
assign({
245249
buildError: event.data,
246250
}),
251+
displayBuildError: (_, event) => {
252+
displayError(Language.buildError)
253+
},
247254
clearBuildError: (_) =>
248255
assign({
249256
buildError: undefined,
@@ -260,6 +267,9 @@ export const workspaceMachine = createMachine(
260267
assign({
261268
refreshTemplateError: event.data,
262269
}),
270+
displayRefreshTemplateError: (_, event) => {
271+
displayError(Language.refreshTemplateError)
272+
},
263273
clearRefreshTemplateError: (_) =>
264274
assign({
265275
refreshTemplateError: undefined,
@@ -273,6 +283,7 @@ export const workspaceMachine = createMachine(
273283
return await API.getWorkspace(event.workspaceId)
274284
},
275285
getTemplate: async (context) => {
286+
console.log("get template", context.template?.active_version_id)
276287
if (context.workspace) {
277288
return await API.getTemplate(context.workspace.template_id)
278289
} else {
@@ -287,6 +298,7 @@ export const workspaceMachine = createMachine(
287298
}
288299
},
289300
startWorkspace: async (context) => {
301+
console.log("start workspace", context.template?.active_version_id)
290302
if (context.workspace) {
291303
return await API.startWorkspace(context.workspace.id, context.template?.active_version_id)
292304
} else {

0 commit comments

Comments
 (0)