fix filter navigation by removing duplicates

This commit is contained in:
Matthias Nannt
2023-02-13 15:22:21 +01:00
parent 8e277e030a
commit efdd2bd257
2 changed files with 12 additions and 5 deletions
@@ -1,6 +1,6 @@
import LoadingSpinner from "@/components/LoadingSpinner";
import { useForm } from "@/lib/forms";
import { camelToTitle } from "@/lib/utils";
import { camelToTitle, filterUniqueById, onlyUnique } from "@/lib/utils";
import clsx from "clsx";
import { useRouter } from "next/router";
import { useEffect, useState } from "react";
@@ -90,10 +90,12 @@ export default function FilterNavigation({
}
}
// add pinned submissions to the top
newFilteredSubmissions = pinnedFilterSubmissions.concat(newFilteredSubmissions).sort((a, b) => {
// sort by date descending
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
});
newFilteredSubmissions = filterUniqueById(
pinnedFilterSubmissions.concat(newFilteredSubmissions).sort((a, b) => {
// sort by date descending
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
})
);
}
}
setFilteredSubmissions(newFilteredSubmissions);
+5
View File
@@ -94,6 +94,11 @@ export const onlyUnique = (value, index, self) => {
return self.indexOf(value) === index;
};
// filter array to eliminate duplicates with the same id
export const filterUniqueById = (array) => {
return array.filter((v, i, a) => a.findIndex((t) => t.id === v.id) === i);
};
export const parseUserAgent = (userAgent: string) => {
const info = platform.parse(userAgent);
return info.description;