Funkcja zwraca tablicę przefiltrowanych tekstów, których tytuł lub zawartość zawiera wyszukiwaną frazę. Przefiltrowane elementy są sortowane w taki sposób, że na początku znajdują się te, które posiadają wyszukiwaną frazę w nazwie, a dopiero potem te, które mają frazę wewnątrz treści.
searchContent.js
const searchContent = (value, content) => {
return content
.filter(
(text) =>
text.name.toLowerCase().includes(value.toLowerCase()) ||
text.content.toLowerCase().includes(value.toLowerCase())
)
.sort((a, b) => {
let itA = a.name.toLowerCase().includes(value.toLowerCase());
let itB = b.name.toLowerCase().includes(value.toLowerCase());
return itA && !itB ? -1 : !itB && itA ? 1 : 0;
});
};
export default searchContent;