Naprawiono błąd z filtrowaniem pociągów

This commit is contained in:
2022-04-01 17:40:47 +02:00
parent 77feca32f3
commit 92788fac94
+12 -7
View File
@@ -42,6 +42,14 @@ const currentDelay = (stops: TrainStop[] | undefined) => {
return delay; return delay;
}; };
function filterTrainList(trainList: Train[], searchedTrain: string, searchedDriver: string) {
return trainList.filter(
(train) =>
(searchedTrain.length > 0 ? train.trainNo.toString().startsWith(searchedTrain) : true) &&
(searchedDriver.length > 0 ? train.driverName.toLowerCase().startsWith(searchedDriver.toLowerCase()) : true)
);
}
function sortTrainList(trainList: Train[], sorterActive: { id: string; dir: number }) { function sortTrainList(trainList: Train[], sorterActive: { id: string; dir: number }) {
return trainList.sort((a: Train, b: Train) => { return trainList.sort((a: Train, b: Train) => {
switch (sorterActive.id) { switch (sorterActive.id) {
@@ -95,14 +103,11 @@ const filteredTrainList = (
) => { ) => {
let finalTrainList: Train[] = []; let finalTrainList: Train[] = [];
const filtered = filterTrainList(trainList, searchedTrain, searchedDriver);
switch (sorterActive.id) { switch (sorterActive.id) {
case 'comments': case 'comments':
const trainsSortedByComments = trainList const trainsSortedByComments = filtered
.filter(
(train) =>
(searchedTrain.length > 0 ? train.trainNo.toString().startsWith(searchedTrain) : true) &&
(searchedDriver.length > 0 ? train.driverName.toLowerCase().startsWith(searchedDriver.toLowerCase()) : true)
)
.sort((a, b) => { .sort((a, b) => {
const commentsA = a.timetableData?.followingStops.some((s) => s.comments) ? 1 : 0; const commentsA = a.timetableData?.followingStops.some((s) => s.comments) ? 1 : 0;
const commentsB = b.timetableData?.followingStops.some((s) => s.comments) ? 1 : 0; const commentsB = b.timetableData?.followingStops.some((s) => s.comments) ? 1 : 0;
@@ -121,7 +126,7 @@ const filteredTrainList = (
break; break;
default: default:
finalTrainList.push(...sortTrainList(trainList, sorterActive)); finalTrainList.push(...sortTrainList(filtered, sorterActive));
break; break;
} }