@@ -24,8 +24,8 @@ import {
24
24
import { LinearMetadataItem } from 'common/IntervalsDataViz/types' ;
25
25
import { LinearMetadataDataviz } from 'common/IntervalsDataViz/dataviz' ;
26
26
import { useModal } from 'common/BootstrapSNCF/ModalSNCF' ;
27
- import HelpModal from './HelpModal' ;
28
27
import { tooltipPosition , notEmpty } from 'common/IntervalsDataViz/utils' ;
28
+ import HelpModal from './HelpModal' ;
29
29
30
30
import { LinearMetadataTooltip } from './tooltip' ;
31
31
import { FormBeginEndWidget } from './FormBeginEndWidget' ;
@@ -66,6 +66,12 @@ export const FormComponent: React.FC<FieldProps> = (props) => {
66
66
return 0 ;
67
67
} , [ formContext ] ) ;
68
68
69
+ // Remove the 'valueField' required field because it is required by the backend. However,
70
+ // the segment with missing values is filtered in 'customOnChange' before being sent to the backend,
71
+ // and then re-added by 'fixLinearMetadataItems'.
72
+ const requiredFilter = ( requireds : string [ ] ) =>
73
+ requireds . filter ( ( r ) => [ 'end' , 'begin' ] . includes ( r ) ) ;
74
+
69
75
// Compute the JSON schema of the linear metadata item
70
76
const jsonSchema = useMemo (
71
77
( ) =>
@@ -83,7 +89,8 @@ export const FormComponent: React.FC<FieldProps> = (props) => {
83
89
maximum : distance ,
84
90
} ,
85
91
}
86
- : { }
92
+ : { } ,
93
+ requiredFilter
87
94
) ,
88
95
[ schema , registry . rootSchema , distance ]
89
96
) ;
@@ -338,19 +345,24 @@ export const FormComponent: React.FC<FieldProps> = (props) => {
338
345
noHtml5Validate
339
346
tagName = "div"
340
347
schema = {
341
- ( getFieldJsonSchema ( schema , registry . rootSchema , {
342
- begin : {
343
- minimum : 0 ,
344
- maximum : fnMax ( [ selectedData . begin , selectedData . end - SEGMENT_MIN_SIZE ] ) ,
345
- } ,
346
- end : {
347
- minimum : fnMin ( [ selectedData . end , data [ selected ] . begin + SEGMENT_MIN_SIZE ] ) ,
348
- maximum :
349
- selected !== data . length - 1
350
- ? fnMax ( [ selectedData . end , data [ selected + 1 ] . end - SEGMENT_MIN_SIZE ] )
351
- : selectedData . end ,
348
+ ( getFieldJsonSchema (
349
+ schema ,
350
+ registry . rootSchema ,
351
+ {
352
+ begin : {
353
+ minimum : 0 ,
354
+ maximum : fnMax ( [ selectedData . begin , selectedData . end - SEGMENT_MIN_SIZE ] ) ,
355
+ } ,
356
+ end : {
357
+ minimum : fnMin ( [ selectedData . end , data [ selected ] . begin + SEGMENT_MIN_SIZE ] ) ,
358
+ maximum :
359
+ selected !== data . length - 1
360
+ ? fnMax ( [ selectedData . end , data [ selected + 1 ] . end - SEGMENT_MIN_SIZE ] )
361
+ : selectedData . end ,
362
+ } ,
352
363
} ,
353
- } ) . items as JSONSchema7 ) || { }
364
+ requiredFilter
365
+ ) . items as JSONSchema7 ) || { }
354
366
}
355
367
uiSchema = { {
356
368
begin : {
0 commit comments