add search bar to volunteer page
This commit is contained in:
1 parent
8275bd1643
commit
6a416abadb
13 files changed
+145
-74
No files matched your search
+16
-18
@@ -1,31 +1,30 @@
|
||||
function filter(elements, filters) {
|
||||
function filter(elements, filters, type) {
|
||||
const compareDate = (dateA, dateB) => {
|
||||
const dA = new Date(dateA);
|
||||
const dB = new Date(dateB);
|
||||
|
||||
if (filters.yearOrder === "asc") {
|
||||
return dB - dA;
|
||||
return dA - dB; // plus ancien -> plus récent
|
||||
} else {
|
||||
return dA - dB;
|
||||
return dB - dA; // plus récent -> plus ancien
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return [...elements].sort((a, b) => {
|
||||
const sortedATasks = a.tasks.sort((taskA, taskB) =>
|
||||
compareDate(taskA.start, taskB.start)
|
||||
);
|
||||
const sortedBTasks = b.tasks.sort((taskA, taskB) =>
|
||||
compareDate(taskA.start, taskB.start)
|
||||
);
|
||||
let timeComparison;
|
||||
|
||||
const timeComparison = compareDate(
|
||||
sortedATasks[0].start,
|
||||
sortedBTasks[0].start
|
||||
);
|
||||
if (filters.yearOrder !== null) {
|
||||
if (type === "event") {
|
||||
timeComparison = compareDate(a.start, b.start);
|
||||
}
|
||||
|
||||
if (timeComparison !== 0) {
|
||||
return timeComparison;
|
||||
else if (type === "user") {
|
||||
timeComparison = compareDate(a.created_at, b.created_at);
|
||||
}
|
||||
|
||||
if (timeComparison !== 0 && timeComparison !== undefined) {
|
||||
return timeComparison;
|
||||
}
|
||||
}
|
||||
|
||||
if (filters.alphabetical !== null) {
|
||||
@@ -38,5 +37,4 @@ function filter(elements, filters) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export default filter;
|
||||
export default filter;
|
||||
@@ -0,0 +1,22 @@
|
||||
export default async function searchUsers(query) {
|
||||
try {
|
||||
const encodedQuery = encodeURIComponent(query);
|
||||
const response = await fetch(
|
||||
`http://localhost:80/api/users/search?query=${encodedQuery}`,
|
||||
{
|
||||
method: 'GET',
|
||||
credentials: 'include',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
}
|
||||
);
|
||||
const data = await response.json();
|
||||
return data.hits.map(hit => hit.document);
|
||||
|
||||
} catch (err) {
|
||||
console.error("Erreur :", err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user