Files
SAE-BUT2-frontend/src/utils/filter.js
T
2025-12-17 14:16:08 +01:00

41 lines
1.0 KiB
JavaScript

function filter(elements, filters, type) {
const compareDate = (dateA, dateB) => {
const dA = new Date(dateA);
const dB = new Date(dateB);
if (filters.yearOrder === "asc") {
return dA - dB;
} else {
return dB - dA;
}
};
return [...elements].sort((a, b) => {
let timeComparison;
if (filters.yearOrder !== null) {
if (type === "event") {
timeComparison = compareDate(a.start, b.start);
}
else if (type === "user") {
timeComparison = compareDate(a.created_at, b.created_at);
}
if (timeComparison !== 0 && timeComparison !== undefined) {
return timeComparison;
}
}
if (filters.alphabetical !== null) {
return filters.alphabetical === "asc"
? a.name.localeCompare(b.name)
: b.name.localeCompare(a.name);
}
return 0;
});
}
export default filter;