Skip to content

Commit 1faed63

Browse files
fix(site): show error when parameter is invalid (#8125)
1 parent bce8a98 commit 1faed63

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

codersdk/richparameters.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, bui
5050
switch richParameter.ValidationMonotonic {
5151
case MonotonicOrderIncreasing:
5252
if lastBuildParameter.Value > buildParameter.Value {
53-
return xerrors.Errorf("parameter value must be equal or greater than previous value: %s", lastBuildParameter.Value)
53+
return xerrors.Errorf("Parameter value must be equal or greater than previous value: %s", lastBuildParameter.Value)
5454
}
5555
case MonotonicOrderDecreasing:
5656
if lastBuildParameter.Value < buildParameter.Value {
57-
return xerrors.Errorf("parameter value must be equal or lower than previous value: %s", lastBuildParameter.Value)
57+
return xerrors.Errorf("Parameter value must be equal or lower than previous value: %s", lastBuildParameter.Value)
5858
}
5959
}
6060
}
@@ -69,7 +69,7 @@ func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, bui
6969
}
7070

7171
if !matched {
72-
return xerrors.Errorf("parameter value must match one of options: %s", parameterValuesAsArray(richParameter.Options))
72+
return xerrors.Errorf("Parameter value must match one of options: %s", parameterValuesAsArray(richParameter.Options))
7373
}
7474
return nil
7575
}

site/src/components/Alert/ErrorAlert.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@ export const ErrorAlert: FC<
99
const message = getErrorMessage(error, "Something went wrong.")
1010
const detail = getErrorDetail(error)
1111

12+
// For some reason, the message and detail can be the same on the BE, but does
13+
// not make sense in the FE to showing them duplicated
14+
const shouldDisplayDetail = message !== detail
15+
1216
return (
1317
<Alert severity="error" {...alertProps}>
1418
{detail ? (
1519
<>
1620
<AlertTitle>{message}</AlertTitle>
17-
<AlertDetail>{detail}</AlertDetail>
21+
{shouldDisplayDetail && <AlertDetail>{detail}</AlertDetail>}
1822
</>
1923
) : (
2024
message

site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import { makeStyles } from "@mui/styles"
1818
import { PageHeader, PageHeaderTitle } from "components/PageHeader/PageHeader"
1919
import { displaySuccess } from "components/GlobalSnackbar/utils"
2020
import { FC } from "react"
21+
import { isApiValidationError } from "api/errors"
22+
import { ErrorAlert } from "components/Alert/ErrorAlert"
2123

2224
const getWorkspaceParameters = async (workspace: Workspace) => {
2325
const latestBuild = workspace.latest_build
@@ -90,6 +92,10 @@ export const WorkspaceParametersPageView: FC<
9092
<PageHeaderTitle>Workspace parameters</PageHeaderTitle>
9193
</PageHeader>
9294

95+
{submitError && !isApiValidationError(submitError) && (
96+
<ErrorAlert error={submitError} sx={{ mb: 6 }} />
97+
)}
98+
9399
{data ? (
94100
<WorkspaceParametersForm
95101
buildParameters={data.buildParameters}

0 commit comments

Comments
 (0)