@@ -20,20 +20,18 @@ import { updateSelectedTrainId } from 'reducers/simulationResults';
20
20
import { getSelectedTrainId } from 'reducers/simulationResults/selectors' ;
21
21
import { useAppDispatch } from 'store' ;
22
22
import { castErrorToFailure } from 'utils/error' ;
23
- import { useDebounce } from 'utils/helpers' ;
24
23
import { formatTrainScheduleIdToEditoastTrainId , isTrainSchedule } from 'utils/trainId' ;
25
24
26
25
import FilterPanel from './FilterPanel' ;
27
- import type { ScheduledPointsHonoredFilter , TimetableItemResult , ValidityFilter } from './types' ;
28
- import useFilterTrainSchedules from './useFilterTrainSchedules' ;
29
- import { timetableHasInvalidTrain } from './utils' ;
26
+ import type { TimetableFilters , TimetableItemResult } from './types' ;
27
+ import { timetableHasInvalidItem } from './utils' ;
30
28
31
29
type TimetableToolbarProps = {
32
30
showTrainDetails : boolean ;
33
31
toggleShowTrainDetails : ( ) => void ;
34
32
timetableItems : TimetableItemResult [ ] ;
35
- displayedTimetableItems : TimetableItemResult [ ] ;
36
- setDisplayedTimetableItems : ( trainSchedulesDetails : TimetableItemResult [ ] ) => void ;
33
+ filteredTimetableItems : TimetableItemResult [ ] ;
34
+ timetableFilters : TimetableFilters ;
37
35
selectedTimetableItemIds : TimetableItemId [ ] ;
38
36
setSelectedTimetableItemIds : ( selectedTimetableIds : TimetableItemId [ ] ) => void ;
39
37
removeTrains : ( trainIds : TimetableItemId [ ] ) => void ;
@@ -45,8 +43,8 @@ const TimetableToolbar = ({
45
43
showTrainDetails,
46
44
toggleShowTrainDetails,
47
45
timetableItems,
48
- displayedTimetableItems ,
49
- setDisplayedTimetableItems ,
46
+ filteredTimetableItems ,
47
+ timetableFilters ,
50
48
selectedTimetableItemIds,
51
49
setSelectedTimetableItemIds,
52
50
removeTrains,
@@ -61,13 +59,6 @@ const TimetableToolbar = ({
61
59
62
60
const [ isFilterPanelOpen , setIsFilterPanelOpen ] = useState ( false ) ;
63
61
64
- const [ filter , setFilter ] = useState ( '' ) ;
65
- const [ rollingStockFilter , setRollingStockFilter ] = useState ( '' ) ;
66
- const [ validityFilter , setValidityFilter ] = useState < ValidityFilter > ( 'both' ) ;
67
- const [ scheduledPointsHonoredFilter , setScheduledPointsHonoredFilter ] =
68
- useState < ScheduledPointsHonoredFilter > ( 'both' ) ;
69
- const [ selectedTags , setSelectedTags ] = useState < Set < string | null > > ( new Set ( ) ) ;
70
-
71
62
const { selectedTrainScheduleIds, selectedPacedTrainIds } = useMemo (
72
63
( ) =>
73
64
selectedTimetableItemIds . reduce (
@@ -103,32 +94,17 @@ const TimetableToolbar = ({
103
94
[ timetableItems ]
104
95
) ;
105
96
106
- const debouncedFilter = useDebounce ( filter , 500 ) ;
107
-
108
- const debouncedRollingstockFilter = useDebounce ( rollingStockFilter , 500 ) ;
109
-
110
97
const [ deleteTrainSchedules ] = osrdEditoastApi . endpoints . deleteTrainSchedule . useMutation ( ) ;
111
98
112
- // TODO: move this hook in Timetable
113
- const { uniqueTags } = useFilterTrainSchedules (
114
- timetableItems ,
115
- debouncedFilter ,
116
- debouncedRollingstockFilter ,
117
- validityFilter ,
118
- scheduledPointsHonoredFilter ,
119
- selectedTags ,
120
- setDisplayedTimetableItems
121
- ) ;
122
-
123
99
const toggleFilterPanel = ( ) => {
124
100
setIsFilterPanelOpen ( ! isFilterPanelOpen ) ;
125
101
} ;
126
102
127
103
const toggleAllTrainsSelecton = ( ) => {
128
- if ( displayedTimetableItems . length === selectedTimetableItemIds . length ) {
104
+ if ( filteredTimetableItems . length === selectedTimetableItemIds . length ) {
129
105
setSelectedTimetableItemIds ( [ ] ) ;
130
106
} else {
131
- const timetableItemsDisplayed = displayedTimetableItems . map ( ( { id } ) => id ) ;
107
+ const timetableItemsDisplayed = filteredTimetableItems . map ( ( { id } ) => id ) ;
132
108
setSelectedTimetableItemIds ( timetableItemsDisplayed ) ;
133
109
}
134
110
} ;
@@ -303,7 +279,7 @@ const TimetableToolbar = ({
303
279
</ div >
304
280
) }
305
281
</ div >
306
- { timetableHasInvalidTrain ( displayedTimetableItems ) && (
282
+ { timetableHasInvalidItem ( filteredTimetableItems ) && (
307
283
< div className = "invalid-trains" >
308
284
< Alert size = "sm" variant = "fill" />
309
285
< span data-testid = "invalid-trains-message" className = "invalid-trains-message" >
@@ -332,17 +308,7 @@ const TimetableToolbar = ({
332
308
) : (
333
309
< FilterPanel
334
310
toggleFilterPanel = { toggleFilterPanel }
335
- filter = { filter }
336
- setFilter = { setFilter }
337
- rollingStockFilter = { rollingStockFilter }
338
- setRollingStockFilter = { setRollingStockFilter }
339
- validityFilter = { validityFilter }
340
- setValidityFilter = { setValidityFilter }
341
- scheduledPointsHonoredFilter = { scheduledPointsHonoredFilter }
342
- setScheduledPointsHonoredFilter = { setScheduledPointsHonoredFilter }
343
- uniqueTags = { uniqueTags }
344
- selectedTags = { selectedTags }
345
- setSelectedTags = { setSelectedTags }
311
+ timetableFilters = { timetableFilters }
346
312
/>
347
313
) }
348
314
</ div >
0 commit comments