@@ -24,6 +24,7 @@ import { useFormikContext } from 'formik';
24
24
25
25
import { AddRepositoriesFormValues , PullRequestPreviewData } from '../../types' ;
26
26
import { getYamlKeyValuePairs } from '../../utils/repository-utils' ;
27
+ import KeyValueTextField from './KeyValueTextField' ;
27
28
28
29
const useDrawerContentStyles = makeStyles ( theme => ( {
29
30
previewCard : {
@@ -209,6 +210,20 @@ export const PreviewPullRequest = ({
209
210
}
210
211
} ;
211
212
213
+ const keyValueTextFields = [
214
+ {
215
+ label : 'Annotations' ,
216
+ name : 'prAnnotations' ,
217
+ value : pullRequest ?. [ repoName ] ?. prAnnotations ,
218
+ } ,
219
+ {
220
+ label : 'Labels' ,
221
+ name : 'prLabels' ,
222
+ value : pullRequest ?. [ repoName ] ?. prLabels ,
223
+ } ,
224
+ { label : 'Spec' , name : 'prSpec' , value : pullRequest ?. [ repoName ] ?. prSpec } ,
225
+ ] ;
226
+
212
227
return (
213
228
< >
214
229
< Box marginTop = { 2 } >
@@ -353,42 +368,15 @@ export const PreviewPullRequest = ({
353
368
WARNING: This may fail if no CODEOWNERS file is found at the target
354
369
location.
355
370
</ FormHelperText >
356
- < TextField
357
- multiline
358
- label = "Annotations"
359
- placeholder = "key1: value2; key2: value2"
360
- variant = "outlined"
361
- margin = "normal"
362
- fullWidth
363
- name = { `repositories.${ pullRequest [ repoName ] . componentName } .prAnnotations` }
364
- value = { pullRequest ?. [ repoName ] ?. prAnnotations }
365
- onChange = { handleChange }
366
- />
367
- < FormHelperText > Use semicolon to separate annotations</ FormHelperText >
368
- < TextField
369
- multiline
370
- label = "Labels"
371
- placeholder = "key1: value2; key2: value2"
372
- variant = "outlined"
373
- margin = "normal"
374
- fullWidth
375
- name = { `repositories.${ pullRequest [ repoName ] . componentName } .prLabels` }
376
- value = { pullRequest ?. [ repoName ] ?. prLabels }
377
- onChange = { handleChange }
378
- />
379
- < FormHelperText > Use semicolon to separate labels</ FormHelperText >
380
- < TextField
381
- multiline
382
- label = "Spec"
383
- placeholder = "key1: value2; key2: value2"
384
- variant = "outlined"
385
- margin = "normal"
386
- fullWidth
387
- name = { `repositories.${ pullRequest [ repoName ] . componentName } .prSpec` }
388
- value = { pullRequest ?. [ repoName ] ?. prSpec }
389
- onChange = { handleChange }
390
- />
391
- < FormHelperText > Use semicolon to separate specs</ FormHelperText >
371
+ { keyValueTextFields . map ( field => (
372
+ < KeyValueTextField
373
+ key = { field . name }
374
+ label = { field . label }
375
+ name = { `repositories.${ pullRequest [ repoName ] . componentName } .${ field . name } ` }
376
+ value = { field . value || '' }
377
+ onChange = { handleChange }
378
+ />
379
+ ) ) }
392
380
< Box marginTop = { 2 } >
393
381
< Typography variant = "h6" >
394
382
Preview { `${ approvalTool . toLowerCase ( ) } ` }
0 commit comments