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, { useEffect, 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"; import { GridLoader, PropagateLoader } from "react-spinners"; export default function Search() { const { links } = useLinkStore(); const router = useRouter(); const [searchFilter, setSearchFilter] = useState({ name: true, url: true, description: true, tags: true, textContent: false, }); const [viewMode, setViewMode] = useState( localStorage.getItem("viewMode") || ViewMode.Card ); const [sortBy, setSortBy] = useState(Sort.DateNewestFirst); const { isLoading } = 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, }); useEffect(() => { console.log("isLoading", isLoading); }, [isLoading]); const linkView = { [ViewMode.Card]: CardView, // [ViewMode.Grid]: GridView, [ViewMode.List]: ListView, }; // @ts-ignore const LinkComponent = linkView[viewMode]; return (
{!isLoading && !links[0] ? (

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

) : links[0] ? ( ) : ( isLoading && ( ) )}
); }