Skip to content

Commit 515fb4a

Browse files
feat: new validation features (#136)
1 parent 4a474e1 commit 515fb4a

2 files changed

Lines changed: 69 additions & 44 deletions

File tree

src/app/screens/Feeds/SearchFilters.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,17 @@ export function SearchFilters({
121121
),
122122
seeChildren: expandedElements[parent],
123123
type: 'checkbox',
124-
children: features.map((feature) => {
125-
return {
126-
title: feature.feature,
127-
type: 'checkbox',
128-
checked: selectedFeatures.some(
129-
(selectedFeature) => selectedFeature === feature.feature,
130-
),
131-
};
132-
}),
124+
children: features
125+
.sort((a, b) => a.feature.localeCompare(b.feature))
126+
.map((feature) => {
127+
return {
128+
title: feature.feature,
129+
type: 'checkbox',
130+
checked: selectedFeatures.some(
131+
(selectedFeature) => selectedFeature === feature.feature,
132+
),
133+
};
134+
}),
133135
}));
134136
}
135137

src/app/utils/consts.tsx

Lines changed: 58 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import MonetizationOnIcon from '@mui/icons-material/MonetizationOn';
77
interface DatasetFeature {
88
component: string;
99
componentSubgroup?: string;
10-
fileName: string;
10+
fileNames: string[];
1111
linkToInfo: string;
1212
deprecated?: boolean;
1313
}
@@ -93,203 +93,226 @@ export function getComponentDecorators(component: string): {
9393
export const DATASET_FEATURES: DatasetFeatures = {
9494
overview: {
9595
component: '',
96-
fileName: '',
96+
fileNames: [],
9797
linkToInfo: 'https://gtfs.org/getting-started/features/overview/',
9898
},
9999
'Text-to-Speech': {
100100
component: 'Accessibility',
101-
fileName: 'stops.txt',
101+
fileNames: ['stops.txt'],
102102
linkToInfo:
103103
'https://gtfs.org/getting-started/features/accessibility/#text-to-speech',
104104
},
105105
'Stops Wheelchair Accessibility': {
106106
component: 'Accessibility',
107-
fileName: 'trips.txt',
107+
fileNames: ['stops.txt'],
108108
linkToInfo:
109109
'https://gtfs.org/getting-started/features/accessibility/#stops-wheelchair-accessibility',
110110
},
111111
'Trips Wheelchair Accessibility': {
112112
component: 'Accessibility',
113-
fileName: 'trips.txt',
113+
fileNames: ['trips.txt'],
114114
linkToInfo:
115115
'https://gtfs.org/getting-started/features/accessibility/#trips-wheelchair-accessibility',
116116
},
117117
'Route Colors': {
118118
component: 'Base add-ons',
119-
fileName: 'routes.txt',
119+
fileNames: ['routes.txt'],
120120
linkToInfo:
121121
'https://gtfs.org/getting-started/features/base-add-ons/#route-colors',
122122
},
123123
'Bike Allowed': {
124124
component: 'Base add-ons',
125-
fileName: 'trips.txt',
125+
fileNames: ['trips.txt'],
126126
linkToInfo:
127127
'https://gtfs.org/getting-started/features/base-add-ons/#bike-allowed',
128128
},
129129
Translations: {
130130
component: 'Base add-ons',
131-
fileName: 'translations.txt',
131+
fileNames: ['translations.txt'],
132132
linkToInfo:
133133
'https://gtfs.org/getting-started/features/base-add-ons/#translations',
134134
},
135135
Headsigns: {
136136
component: 'Base add-ons',
137-
fileName: 'trips.txt',
137+
fileNames: ['trips.txt', 'stop_times.txt'],
138138
linkToInfo:
139139
'https://gtfs.org/getting-started/features/base-add-ons/#headsigns',
140140
},
141141
'Fare Products': {
142142
component: 'Fares',
143143
componentSubgroup: 'Fares v2',
144-
fileName: 'fare_products.txt',
144+
fileNames: ['fare_products.txt'],
145145
linkToInfo:
146146
'https://gtfs.org/getting-started/features/fares/#fare-products',
147147
},
148148
'Fare Media': {
149149
component: 'Fares',
150150
componentSubgroup: 'Fares v2',
151-
fileName: 'fare_media.txt',
151+
fileNames: ['fare_media.txt', 'fare_products.txt'],
152152
linkToInfo: 'https://gtfs.org/getting-started/features/fares/#fare-media',
153153
},
154154
'Rider Categories': {
155155
component: 'Fares',
156156
componentSubgroup: 'Fares v2',
157-
fileName: 'rider_categories.txt',
157+
fileNames: ['rider_categories.txt', 'fare_products.txt'],
158158
linkToInfo:
159159
'https://gtfs.org/getting-started/features/fares/#rider-categories',
160160
},
161161
'Route-Based Fares': {
162162
component: 'Fares',
163163
componentSubgroup: 'Fares v2',
164-
fileName: 'routes.txt',
164+
fileNames: [
165+
'routes.txt',
166+
'networks.txt',
167+
'fare_products.txt',
168+
'fare_leg_rules.txt',
169+
],
165170
linkToInfo:
166171
'https://gtfs.org/getting-started/features/fares/#route-based-fares',
167172
},
168173
'Time-Based Fares': {
169174
component: 'Fares',
170175
componentSubgroup: 'Fares v2',
171-
fileName: 'timeframes.txt',
176+
fileNames: ['timeframes.txt', 'fare_products.txt', 'fare_leg_rules.txt'],
172177
linkToInfo:
173178
'https://gtfs.org/getting-started/features/fares/#time-based-fares',
174179
},
175180
'Zone-Based Fares': {
176181
component: 'Fares',
177182
componentSubgroup: 'Fares v2',
178-
fileName: 'areas.txt',
183+
fileNames: ['areas.txt', 'fare_products.txt', 'fare_leg_rules.txt'],
179184
linkToInfo:
180185
'https://gtfs.org/getting-started/features/fares/#zone-based-fares',
181186
},
182187
'Fare Transfers': {
183188
component: 'Fares',
184189
componentSubgroup: 'Fares v2',
185-
fileName: 'fare_transfer_rules.txt',
190+
fileNames: ['fare_transfer_rules.txt'],
186191
linkToInfo:
187192
'https://gtfs.org/getting-started/features/fares/#fare-transfers',
188193
},
189194
'Fares V1': {
190195
component: 'Fares',
191-
fileName: 'fare_attributes.txt',
196+
fileNames: ['fare_attributes.txt'],
192197
linkToInfo: 'https://gtfs.org/getting-started/features/fares/#fares-v1',
193198
},
194199
'Pathway Connections': {
195200
component: 'Pathways',
196-
fileName: 'pathways.txt',
201+
fileNames: ['pathways.txt'],
197202
linkToInfo:
198203
'https://gtfs.org/getting-started/features/pathways/#pathway-connections',
199204
},
200205
'Pathway Details': {
201206
component: 'Pathways',
202-
fileName: 'pathways.txt',
207+
fileNames: ['pathways.txt'],
203208
linkToInfo:
204209
'https://gtfs.org/getting-started/features/pathways/#pathway-details',
205210
},
206211
Levels: {
207212
component: 'Pathways',
208-
fileName: 'levels.txt',
213+
fileNames: ['levels.txt'],
209214
linkToInfo: 'https://gtfs.org/getting-started/features/pathways/#levels',
210215
},
211216
'In-station Traversal Time': {
212217
component: 'Pathways',
213-
fileName: 'pathways.txt',
218+
fileNames: ['pathways.txt'],
214219
linkToInfo:
215220
'https://gtfs.org/getting-started/features/pathways/#in-station-traversal-time',
216221
},
217222
'Pathway Signs': {
218223
component: 'Pathways',
219-
fileName: 'pathways.txt',
224+
fileNames: ['pathways.txt'],
220225
linkToInfo:
221226
'https://gtfs.org/getting-started/features/pathways/#pathway-signs',
222227
},
223228
'Location Types': {
224229
component: 'Base add-ons',
225-
fileName: 'stops.txt',
230+
fileNames: ['stops.txt'],
226231
linkToInfo:
227232
'https://gtfs.org/getting-started/features/base-add-ons/#location-types',
228233
},
229234
'Feed Information': {
230235
component: 'Base add-ons',
231-
fileName: 'feed_info.txt',
236+
fileNames: ['feed_info.txt'],
232237
linkToInfo:
233238
'https://gtfs.org/getting-started/features/base-add-ons/#feed-information',
234239
},
235240
Attributions: {
236241
component: 'Base add-ons',
237-
fileName: 'attributions.txt',
242+
fileNames: ['attributions.txt'],
238243
linkToInfo:
239244
'https://gtfs.org/getting-started/features/base-add-ons/#attributions',
240245
},
241246
'Continuous Stops': {
242247
component: 'Flexible Services',
243-
fileName: 'routes.txt',
248+
fileNames: ['routes.txt', 'stop_times.txt'],
244249
linkToInfo:
245250
'https://gtfs.org/getting-started/features/flexible-services/#continuous-stops',
246251
},
247252
'Booking Rules': {
248253
component: 'Flexible Services',
249254
componentSubgroup: 'Flex',
250-
fileName: 'routes.txt',
255+
fileNames: ['booking_rules.txt'],
251256
linkToInfo:
252257
'https://gtfs.org/getting-started/features/flexible-services/#booking-rules',
253258
},
254259
'Fixed-Stops Demand Responsive Transit': {
255260
component: 'Flexible Services',
256261
componentSubgroup: 'Flex',
257-
fileName: 'location_groups.txt',
262+
fileNames: ['location_groups.txt', 'stop_times.txt'],
258263
linkToInfo:
259264
'https://gtfs.org/getting-started/features/flexible-services/#fixed-stops-demand-responsive-services',
260265
},
261266
'Zone-Based Demand Responsive Services': {
262267
component: 'Flexible Services',
263268
componentSubgroup: 'Flex',
264-
fileName: 'stop_times.txt',
269+
fileNames: ['stop_times.txt'],
265270
linkToInfo:
266271
'https://gtfs.org/getting-started/features/flexible-services/#zone-based-demand-responsive-services',
267272
},
268273
'Predefined Routes with Deviation': {
269274
component: 'Flexible Services',
270275
componentSubgroup: 'Flex',
271-
fileName: 'stop_times.txt',
276+
fileNames: ['stop_times.txt'],
272277
linkToInfo:
273278
'https://gtfs.org/getting-started/features/flexible-services/#predefined-routes-with-deviation',
274279
},
275280
Shapes: {
276281
component: 'Base add-ons',
277-
fileName: 'shapes.txt',
282+
fileNames: ['shapes.txt'],
278283
linkToInfo:
279284
'https://gtfs.org/getting-started/features/base-add-ons/#shapes ',
280285
},
281286
Transfers: {
282287
component: 'Base add-ons',
283-
fileName: 'transfers.txt',
288+
fileNames: ['transfers.txt'],
284289
linkToInfo:
285290
'https://gtfs.org/getting-started/features/base-add-ons/#transfers',
286291
},
287292
Frequencies: {
288293
component: 'Base add-ons',
289-
fileName: 'frequencies.txt',
294+
fileNames: ['frequencies.txt'],
290295
linkToInfo:
291296
'https://gtfs.org/getting-started/features/base-add-ons/#frequency-based-service ',
292297
},
298+
'Contactless EMV Support': {
299+
component: 'Fares',
300+
fileNames: ['agency.txt', 'routes.txt'],
301+
linkToInfo:
302+
'https://gtfs.org/getting-started/features/fares/#contactless-emv-support',
303+
},
304+
'Cars Allowed': {
305+
component: 'Base add-ons',
306+
fileNames: ['trips.txt'],
307+
linkToInfo:
308+
'https://gtfs.org/getting-started/features/base-add-ons/#cars-allowed',
309+
},
310+
'Stop Access': {
311+
component: 'Base add-ons',
312+
fileNames: ['stops.txt'],
313+
linkToInfo:
314+
'https://gtfs.org/getting-started/features/base-add-ons/#stop-access',
315+
},
293316
};
294317
// SPELLING CORRECTIONS
295318
DATASET_FEATURES['Text-To-Speech'] = {
@@ -301,7 +324,7 @@ DATASET_FEATURES['Text-To-Speech'] = {
301324
DATASET_FEATURES['Wheelchair Accessibility'] = {
302325
// as of 6.0
303326
component: 'Accessibility',
304-
fileName: 'trips.txt',
327+
fileNames: ['trips.txt'],
305328
linkToInfo: 'https://gtfs.org/getting-started/features/accessibility',
306329
deprecated: true,
307330
};
@@ -328,7 +351,7 @@ DATASET_FEATURES['Traversal Time'] = {
328351
DATASET_FEATURES['Pathways Directions'] = {
329352
// as of 6.0
330353
component: 'Pathways',
331-
fileName: 'pathways.txt',
354+
fileNames: ['pathways.txt'],
332355
linkToInfo: 'https://gtfs.org/schedule/reference/#pathwaystxt',
333356
deprecated: true,
334357
};

0 commit comments

Comments
 (0)