File tree Expand file tree Collapse file tree 9 files changed +39
-35
lines changed
WorkspacePage/WorkspaceActions
WorkspaceSettingsPage/WorkspaceParametersPage Expand file tree Collapse file tree 9 files changed +39
-35
lines changed Original file line number Diff line number Diff line change @@ -130,8 +130,8 @@ export const seventhParameter: RichParameter = {
130
130
131
131
// randParamName returns a new parameter with a random name.
132
132
export const randParamName = ( p : RichParameter ) : RichParameter => {
133
- p . name += Math . random ( ) . toString ( 36 ) . substring ( 7 ) ;
134
- return p ;
133
+ const name = p . name + Math . random ( ) . toString ( 36 ) . substring ( 7 ) ;
134
+ return { ... p , name : name } ;
135
135
} ;
136
136
137
137
// Build options
Original file line number Diff line number Diff line change @@ -159,7 +159,7 @@ export const RichParameterInput: FC<RichParameterInputProps> = ({
159
159
< ParameterLabel parameter = { parameter } />
160
160
< div css = { { display : "flex" , flexDirection : "column" } } >
161
161
< RichParameterField { ...fieldProps } size = { size } parameter = { parameter } />
162
- { autofillSource && (
162
+ { autofillSource && autofillSource !== "active_build" && (
163
163
< div css = { { marginTop : 4 , fontSize : 12 } } >
164
164
🪄 Autofilled:{ " " }
165
165
{
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ import { AutofillSource } from "utils/richParameters";
9
9
10
10
export type TemplateParametersSectionProps = {
11
11
templateParameters : TemplateVersionParameter [ ] ;
12
- defaultReasons ?: Record < string , AutofillSource > ;
12
+ autofillSources ?: Record < string , AutofillSource > ;
13
13
getInputProps : (
14
14
parameter : TemplateVersionParameter ,
15
15
index : number ,
@@ -21,7 +21,7 @@ export const MutableTemplateParametersSection: FC<
21
21
> = ( {
22
22
templateParameters,
23
23
getInputProps,
24
- defaultReasons,
24
+ autofillSources : defaultReasons ,
25
25
...formSectionProps
26
26
} ) => {
27
27
const hasMutableParameters =
Original file line number Diff line number Diff line change @@ -127,7 +127,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
127
127
error ,
128
128
) ;
129
129
130
- const defaultSources = useMemo ( ( ) => {
130
+ const autofillSources = useMemo ( ( ) => {
131
131
return autofillParameters . reduce (
132
132
( acc , param ) => {
133
133
acc [ param . name ] = param . source ;
@@ -223,7 +223,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
223
223
{ parameters && (
224
224
< >
225
225
< MutableTemplateParametersSection
226
- defaultReasons = { defaultSources }
226
+ autofillSources = { autofillSources }
227
227
templateParameters = { parameters }
228
228
getInputProps = { ( parameter , index ) => {
229
229
return {
@@ -244,7 +244,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
244
244
} }
245
245
/>
246
246
< ImmutableTemplateParametersSection
247
- defaultReasons = { defaultSources }
247
+ autofillSources = { autofillSources }
248
248
templateParameters = { parameters }
249
249
classes = { {
250
250
root : css `
Original file line number Diff line number Diff line change @@ -21,7 +21,10 @@ import {
21
21
import { useFormik } from "formik" ;
22
22
import { docs } from "utils/docs" ;
23
23
import { getFormHelpers } from "utils/formUtils" ;
24
- import { getInitialRichParameterValues } from "utils/richParameters" ;
24
+ import {
25
+ AutofillBuildParameter ,
26
+ getInitialRichParameterValues ,
27
+ } from "utils/richParameters" ;
25
28
import {
26
29
Popover ,
27
30
PopoverContent ,
@@ -113,7 +116,12 @@ const BuildParametersPopoverContent: FC<BuildParametersPopoverContentProps> = ({
113
116
popover . setIsOpen ( false ) ;
114
117
} }
115
118
ephemeralParameters = { ephemeralParameters }
116
- buildParameters = { buildParameters }
119
+ buildParameters = { buildParameters . map (
120
+ ( p ) : AutofillBuildParameter => ( {
121
+ ...p ,
122
+ source : "active_build" ,
123
+ } ) ,
124
+ ) }
117
125
/>
118
126
</ div >
119
127
</ >
@@ -147,7 +155,7 @@ const BuildParametersPopoverContent: FC<BuildParametersPopoverContentProps> = ({
147
155
148
156
interface FormProps {
149
157
ephemeralParameters : TemplateVersionParameter [ ] ;
150
- buildParameters : WorkspaceBuildParameter [ ] ;
158
+ buildParameters : AutofillBuildParameter [ ] ;
151
159
onSubmit : ( buildParameters : WorkspaceBuildParameter [ ] ) => void ;
152
160
}
153
161
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ import {
10
10
} from "components/Form/Form" ;
11
11
import { RichParameterInput } from "components/RichParameterInput/RichParameterInput" ;
12
12
import {
13
+ AutofillBuildParameter ,
13
14
getInitialRichParameterValues ,
14
15
useValidationSchemaForRichParameters ,
15
16
} from "utils/richParameters" ;
@@ -27,7 +28,7 @@ export type WorkspaceParametersFormValues = {
27
28
interface WorkspaceParameterFormProps {
28
29
workspace : Workspace ;
29
30
templateVersionRichParameters : TemplateVersionParameter [ ] ;
30
- buildParameters : WorkspaceBuildParameter [ ] ;
31
+ autofillParams : AutofillBuildParameter [ ] ;
31
32
isSubmitting : boolean ;
32
33
canChangeVersions : boolean ;
33
34
error : unknown ;
@@ -40,7 +41,7 @@ export const WorkspaceParametersForm: FC<WorkspaceParameterFormProps> = ({
40
41
onCancel,
41
42
onSubmit,
42
43
templateVersionRichParameters,
43
- buildParameters ,
44
+ autofillParams ,
44
45
error,
45
46
canChangeVersions,
46
47
isSubmitting,
@@ -50,7 +51,7 @@ export const WorkspaceParametersForm: FC<WorkspaceParameterFormProps> = ({
50
51
initialValues : {
51
52
rich_parameter_values : getInitialRichParameterValues (
52
53
templateVersionRichParameters ,
53
- buildParameters ,
54
+ autofillParams ,
54
55
) ,
55
56
} ,
56
57
validationSchema : Yup . object ( {
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ import { EmptyState } from "components/EmptyState/EmptyState";
24
24
import Button from "@mui/material/Button" ;
25
25
import OpenInNewOutlined from "@mui/icons-material/OpenInNewOutlined" ;
26
26
import { docs } from "utils/docs" ;
27
+ import { AutofillBuildParameter } from "utils/richParameters" ;
27
28
28
29
const WorkspaceParametersPage : FC = ( ) => {
29
30
const workspace = useWorkspaceSettings ( ) ;
@@ -126,7 +127,12 @@ export const WorkspaceParametersPageView: FC<
126
127
< WorkspaceParametersForm
127
128
workspace = { workspace }
128
129
canChangeVersions = { canChangeVersions }
129
- buildParameters = { data . buildParameters }
130
+ autofillParams = { data . buildParameters . map (
131
+ ( p ) : AutofillBuildParameter => ( {
132
+ ...p ,
133
+ source : "active_build" ,
134
+ } ) ,
135
+ ) }
130
136
templateVersionRichParameters = { data . templateVersionRichParameters }
131
137
error = { submitError }
132
138
isSubmitting = { isSubmitting }
Original file line number Diff line number Diff line change @@ -4,8 +4,10 @@ import {
4
4
} from "api/typesGenerated" ;
5
5
import * as Yup from "yup" ;
6
6
7
- export type AutofillSource = "user_history" | "url" ;
7
+ export type AutofillSource = "user_history" | "url" | "active_build" ;
8
8
9
+ // AutofillBuildParameter is a build parameter destined to a form, alongside
10
+ // its source so that the form can explain where the value comes from.
9
11
export type AutofillBuildParameter = {
10
12
source : AutofillSource ;
11
13
} & WorkspaceBuildParameter ;
@@ -19,21 +21,10 @@ export const getInitialRichParameterValues = (
19
21
( p ) => p . name === parameter . name ,
20
22
) ;
21
23
if ( autofillParam !== undefined && isValidValue ( parameter , autofillParam ) ) {
22
- // URL takes precedence over all other sources.
23
- if ( autofillParam . source === "url" ) {
24
- return {
25
- name : parameter . name ,
26
- value : autofillParam . value ,
27
- } ;
28
- }
29
-
30
- // Need to decide whether user_history is more important than default value.
31
- if ( autofillParam . source === "user_history" ) {
32
- return {
33
- name : parameter . name ,
34
- value : autofillParam . value ,
35
- } ;
36
- }
24
+ return {
25
+ name : parameter . name ,
26
+ value : autofillParam . value ,
27
+ } ;
37
28
}
38
29
39
30
return {
You can’t perform that action at this time.
0 commit comments