@@ -25,11 +25,22 @@ export const WorkspaceSettingsForm: FC<{
25
25
onSubmit : ( values : WorkspaceSettingsFormValue ) => void
26
26
} > = ( { onCancel, onSubmit, settings, error, isSubmitting } ) => {
27
27
const { t } = useTranslation ( "createWorkspacePage" )
28
+ const mutableParameters = settings . templateVersionParameters . filter (
29
+ ( param ) => param . mutable ,
30
+ )
28
31
const form = useFormik < WorkspaceSettingsFormValue > ( {
29
32
onSubmit,
30
33
initialValues : {
31
34
name : settings . workspace . name ,
32
- rich_parameter_values : settings . buildParameters ,
35
+ rich_parameter_values : mutableParameters . map ( ( parameter ) => {
36
+ const buildParameter = settings . buildParameters . find (
37
+ ( p ) => p . name === parameter . name ,
38
+ )
39
+ if ( ! buildParameter ) {
40
+ throw new Error ( "Missing build parameter for " + parameter . name )
41
+ }
42
+ return buildParameter
43
+ } ) ,
33
44
} ,
34
45
validationSchema : Yup . object ( {
35
46
name : nameValidator ( t ( "nameLabel" , { ns : "createWorkspacePage" } ) ) ,
@@ -62,32 +73,36 @@ export const WorkspaceSettingsForm: FC<{
62
73
/>
63
74
</ FormFields >
64
75
</ FormSection >
65
- < FormSection
66
- title = "Parameters"
67
- description = "The template and name of your new workspace."
68
- >
69
- < FormFields >
70
- { settings . templateVersionParameters . map ( ( parameter , index ) => (
71
- < RichParameterInput
72
- { ...getFieldHelpers ( "rich_parameter_values[" + index + "].value" ) }
73
- disabled = { isSubmitting }
74
- index = { index }
75
- key = { parameter . name }
76
- onChange = { async ( value ) => {
77
- await form . setFieldValue ( "rich_parameter_values." + index , {
78
- name : parameter . name ,
79
- value : value ,
80
- } )
81
- } }
82
- parameter = { parameter }
83
- initialValue = { workspaceBuildParameterValue (
84
- settings . buildParameters ,
85
- parameter ,
86
- ) }
87
- />
88
- ) ) }
89
- </ FormFields >
90
- </ FormSection >
76
+ { mutableParameters . length > 0 && (
77
+ < FormSection
78
+ title = "Parameters"
79
+ description = "The template and name of your new workspace."
80
+ >
81
+ < FormFields >
82
+ { settings . templateVersionParameters . map ( ( parameter , index ) => (
83
+ < RichParameterInput
84
+ { ...getFieldHelpers (
85
+ "rich_parameter_values[" + index + "].value" ,
86
+ ) }
87
+ disabled = { isSubmitting }
88
+ index = { index }
89
+ key = { parameter . name }
90
+ onChange = { async ( value ) => {
91
+ await form . setFieldValue ( "rich_parameter_values." + index , {
92
+ name : parameter . name ,
93
+ value : value ,
94
+ } )
95
+ } }
96
+ parameter = { parameter }
97
+ initialValue = { workspaceBuildParameterValue (
98
+ settings . buildParameters ,
99
+ parameter ,
100
+ ) }
101
+ />
102
+ ) ) }
103
+ </ FormFields >
104
+ </ FormSection >
105
+ ) }
91
106
< FormFooter onCancel = { onCancel } isLoading = { isSubmitting } />
92
107
</ HorizontalForm >
93
108
)
0 commit comments