import FilterSearchDropdown from "@/components/FilterSearchDropdown"; import SortDropdown from "@/components/SortDropdown"; import useLinks from "@/hooks/useLinks"; import MainLayout from "@/layouts/MainLayout"; import useLinkStore from "@/store/links"; import { Sort, ViewMode } from "@/types/global"; import { useRouter } from "next/router"; import React, { useState } from "react"; import ViewDropdown from "@/components/ViewDropdown"; import CardView from "@/components/LinkViews/Layouts/CardView"; // import GridView from "@/components/LinkViews/Layouts/GridView"; import ListView from "@/components/LinkViews/Layouts/ListView"; import PageHeader from "@/components/PageHeader"; export default function Search() { const { links } = useLinkStore(); const router = useRouter(); const [searchFilter, setSearchFilter] = useState({ name: true, url: true, description: true, textContent: true, tags: true, }); const [viewMode, setViewMode] = useState( localStorage.getItem("viewMode") || ViewMode.Card ); const [sortBy, setSortBy] = useState(Sort.DateNewestFirst); useLinks({ sort: sortBy, searchQueryString: decodeURIComponent(router.query.q as string), searchByName: searchFilter.name, searchByUrl: searchFilter.url, searchByDescription: searchFilter.description, searchByTextContent: searchFilter.textContent, searchByTags: searchFilter.tags, }); const linkView = { [ViewMode.Card]: CardView, // [ViewMode.Grid]: GridView, [ViewMode.List]: ListView, }; // @ts-ignore const LinkComponent = linkView[viewMode]; return (
{links[0] ? ( ) : (

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

)}
); }