fix(site): Fix missing parameters detection on update workspace (#6740)

This commit is contained in:
Bruno Quaresma
2023-03-23 08:05:19 +01:00
committed by GitHub
parent dab4a0e6ef
commit eaacc26da7
4 changed files with 17 additions and 17 deletions
+4 -1
View File
@@ -977,7 +977,10 @@ const getMissingParameters = (
) => {
const missingParameters: TypesGen.TemplateVersionParameter[] = []
const requiredParameters = templateParameters.filter(
(p) => p.required && p.mutable,
// It is required
// and it can be changed
// and it is not from a legacy variable
(p) => p.required && p.mutable && p.legacy_variable_name === undefined,
)
for (const parameter of requiredParameters) {
@@ -25,21 +25,22 @@ import { useTranslation } from "react-i18next"
export type UpdateBuildParametersDialogProps = DialogProps & {
onClose: () => void
onUpdate: (buildParameters: WorkspaceBuildParameter[]) => void
parameters?: TemplateVersionParameter[]
missedParameters?: TemplateVersionParameter[]
}
export const UpdateBuildParametersDialog: FC<
UpdateBuildParametersDialogProps
> = ({ parameters, onUpdate, ...dialogProps }) => {
> = ({ missedParameters, onUpdate, ...dialogProps }) => {
const styles = useStyles()
const form = useFormik({
initialValues: {
rich_parameter_values: selectInitialRichParametersValues(parameters),
rich_parameter_values:
selectInitialRichParametersValues(missedParameters),
},
validationSchema: Yup.object({
rich_parameter_values: useValidationSchemaForRichParameters(
"createWorkspacePage",
parameters,
missedParameters,
),
}),
onSubmit: (values) => {
@@ -72,13 +73,9 @@ export const UpdateBuildParametersDialog: FC<
onSubmit={form.handleSubmit}
id="updateParameters"
>
{parameters && parameters.filter((p) => p.mutable).length > 0 && (
{missedParameters && (
<FormFields>
{parameters.map((parameter, index) => {
if (!parameter.mutable) {
return <></>
}
{missedParameters.map((parameter, index) => {
return (
<RichParameterInput
{...getFieldHelpers(
@@ -52,7 +52,7 @@ export const WorkspaceReadyPage = ({
cancellationError,
applicationsHost,
permissions,
missingParameters,
missedParameters,
} = workspaceState.context
if (workspace === undefined) {
throw Error("Workspace is undefined")
@@ -140,7 +140,7 @@ export const WorkspaceReadyPage = ({
}}
/>
<UpdateBuildParametersDialog
parameters={missingParameters}
missedParameters={missedParameters}
open={workspaceState.matches(
"ready.build.askingForMissedBuildParameters",
)}
@@ -62,7 +62,7 @@ export interface WorkspaceContext {
// Builds
builds?: TypesGen.WorkspaceBuild[]
getBuildsError?: Error | unknown
missingParameters?: TypesGen.TemplateVersionParameter[]
missedParameters?: TypesGen.TemplateVersionParameter[]
// error creating a new WorkspaceBuild
buildError?: Error | unknown
cancellationMessage?: Types.Message
@@ -302,7 +302,7 @@ export const workspaceMachine = createMachine(
{
target: "askingForMissedBuildParameters",
cond: "isMissingBuildParameterError",
actions: ["assignMissingParameters"],
actions: ["assignMissedParameters"],
},
{
target: "idle",
@@ -597,8 +597,8 @@ export const workspaceMachine = createMachine(
}
},
}),
assignMissingParameters: assign({
missingParameters: (_, { data }) => {
assignMissedParameters: assign({
missedParameters: (_, { data }) => {
if (!(data instanceof API.MissingBuildParameters)) {
throw new Error("data is not a MissingBuildParameters error")
}