// Copyright (C) 2022-present Daniel31x13 // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. // You should have received a copy of the GNU General Public License along with this program. If not, see . import LinkList from "@/components/LinkList"; import MainLayout from "@/layouts/MainLayout"; import useLinkStore from "@/store/links"; import useSearchSettingsStore from "@/store/search"; import { ExtendedLink } from "@/types/global"; import { faSearch } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useEffect, useState } from "react"; export default function Links() { const { links } = useLinkStore(); const [filteredLinks, setFilteredLinks] = useState([]); const { searchSettings } = useSearchSettingsStore(); useEffect(() => { const { name, url, title, collection, tags } = searchSettings.filter; const filter = links.filter((link) => { const query = searchSettings.query.toLowerCase(); if ( (name && link.name.toLowerCase().includes(query)) || (url && link.url.toLowerCase().includes(query)) || (title && link.title.toLowerCase().includes(query)) || (collection && link.collection.name.toLowerCase().includes(query)) || (tags && link.tags.some((tag) => tag.name.toLowerCase().includes(query))) ) return true; }); setFilteredLinks(filter); }, [searchSettings, links]); return (

Search Results

{filteredLinks[0] ? ( filteredLinks.map((e, i) => { return ; }) ) : (

Nothing found.{" "} ¯\_(ツ)_/¯

)}
); }