Skip to content

Commit 469cfdb

Browse files
committed
Merge branch 'main' into bq/display-build-error
2 parents b3e0132 + a364318 commit 469cfdb

File tree

2 files changed

+49
-43
lines changed

2 files changed

+49
-43
lines changed

site/src/pages/WorkspacePage/WorkspacePage.tsx

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { useParams } from "react-router-dom"
1111
import { quotaMachine } from "xServices/quotas/quotasXService"
1212
import { workspaceMachine } from "xServices/workspace/workspaceXService"
1313
import { WorkspaceReadyPage } from "./WorkspaceReadyPage"
14+
import { RequirePermission } from "components/RequirePermission/RequirePermission"
1415

1516
const useFailedBuildLogs = (workspace: Workspace | undefined) => {
1617
const now = useRef(new Date())
@@ -53,47 +54,51 @@ export const WorkspacePage: FC = () => {
5354
const failedBuildLogs = useFailedBuildLogs(workspace)
5455

5556
return (
56-
<ChooseOne>
57-
<Cond condition={workspaceState.matches("error")}>
58-
<div className={styles.error}>
59-
{Boolean(getWorkspaceError) && (
60-
<AlertBanner severity="error" error={getWorkspaceError} />
61-
)}
62-
{Boolean(getTemplateWarning) && (
63-
<AlertBanner severity="error" error={getTemplateWarning} />
64-
)}
65-
{Boolean(getTemplateParametersWarning) && (
66-
<AlertBanner
67-
severity="error"
68-
error={getTemplateParametersWarning}
69-
/>
70-
)}
71-
{Boolean(checkPermissionsError) && (
72-
<AlertBanner severity="error" error={checkPermissionsError} />
73-
)}
74-
{Boolean(getQuotaError) && (
75-
<AlertBanner severity="error" error={getQuotaError} />
76-
)}
77-
</div>
78-
</Cond>
79-
<Cond
80-
condition={
81-
Boolean(workspace) &&
82-
workspaceState.matches("ready") &&
83-
quotaState.matches("success")
84-
}
85-
>
86-
<WorkspaceReadyPage
87-
workspaceState={workspaceState}
88-
quotaState={quotaState}
89-
workspaceSend={workspaceSend}
90-
failedBuildLogs={failedBuildLogs.data}
91-
/>
92-
</Cond>
93-
<Cond>
94-
<Loader />
95-
</Cond>
96-
</ChooseOne>
57+
<RequirePermission
58+
isFeatureVisible={getWorkspaceError?.response?.status !== 404}
59+
>
60+
<ChooseOne>
61+
<Cond condition={workspaceState.matches("error")}>
62+
<div className={styles.error}>
63+
{Boolean(getWorkspaceError) && (
64+
<AlertBanner severity="error" error={getWorkspaceError} />
65+
)}
66+
{Boolean(getTemplateWarning) && (
67+
<AlertBanner severity="error" error={getTemplateWarning} />
68+
)}
69+
{Boolean(getTemplateParametersWarning) && (
70+
<AlertBanner
71+
severity="error"
72+
error={getTemplateParametersWarning}
73+
/>
74+
)}
75+
{Boolean(checkPermissionsError) && (
76+
<AlertBanner severity="error" error={checkPermissionsError} />
77+
)}
78+
{Boolean(getQuotaError) && (
79+
<AlertBanner severity="error" error={getQuotaError} />
80+
)}
81+
</div>
82+
</Cond>
83+
<Cond
84+
condition={
85+
Boolean(workspace) &&
86+
workspaceState.matches("ready") &&
87+
quotaState.matches("success")
88+
}
89+
>
90+
<WorkspaceReadyPage
91+
failedBuildLogs={failedBuildLogs.data}
92+
workspaceState={workspaceState}
93+
quotaState={quotaState}
94+
workspaceSend={workspaceSend}
95+
/>
96+
</Cond>
97+
<Cond>
98+
<Loader />
99+
</Cond>
100+
</ChooseOne>
101+
</RequirePermission>
97102
)
98103
}
99104

site/src/xServices/workspace/workspaceXService.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
displayError,
1010
displaySuccess,
1111
} from "../../components/GlobalSnackbar/utils"
12+
import { AxiosError } from "axios"
1213

1314
const latestBuild = (builds: TypesGen.WorkspaceBuild[]) => {
1415
// Cloning builds to not change the origin object with the sort()
@@ -59,7 +60,7 @@ export interface WorkspaceContext {
5960
workspace?: TypesGen.Workspace
6061
template?: TypesGen.Template
6162
build?: TypesGen.WorkspaceBuild
62-
getWorkspaceError?: Error | unknown
63+
getWorkspaceError?: AxiosError
6364
getTemplateWarning: Error | unknown
6465
getTemplateParametersWarning: Error | unknown
6566
// Builds
@@ -511,7 +512,7 @@ export const workspaceMachine = createMachine(
511512
workspace: (_, event) => event.data,
512513
}),
513514
assignGetWorkspaceError: assign({
514-
getWorkspaceError: (_, event) => event.data,
515+
getWorkspaceError: (_, event) => event.data as AxiosError,
515516
}),
516517
clearGetWorkspaceError: (context) =>
517518
assign({ ...context, getWorkspaceError: undefined }),

0 commit comments

Comments
 (0)