"use client"; import { useState, useEffect } from "react"; import { Input, Button, Spinner } from "@nextui-org/react"; import { BsFiletypePdf } from "react-icons/bs"; import { FcFolder } from "react-icons/fc"; import { useRouter, useSearchParams } from "next/navigation"; export default function SearchComponent({ searchResults }) { const [query, setQuery] = useState(""); const [loading, setLoading] = useState(false); const [hasSearched, setHasSearched] = useState(false); const router = useRouter(); const searchParams = useSearchParams(); useEffect(() => { if (searchParams.get("query")) { setLoading(false); setHasSearched(true); } }, [searchParams]); const handleSearch = () => { if (query) { setLoading(true); setHasSearched(false); router.push(`?query=${query}`); } }; const handleKeyPress = (e) => { if (e.key === "Enter") { handleSearch(); } }; const formatSearchResult = (filePath) => { const pathSegments = filePath.split("\\"); const fileName = pathSegments.pop(); const folderPath = pathSegments.join("\\"); return { folderPath, fileName, pathSegments }; }; const handleFolderClick = (pathSegments) => { const newPath = pathSegments.join("/"); router.push(`/niederlassung/${newPath}`); }; return (
setQuery(e.target.value)} onKeyPress={handleKeyPress} classNames={{ label: "text-black/70", input: ["bg-white", "text-black", "placeholder:text-gray-500"], inputWrapper: ["shadow-md", "bg-white", "!cursor-text"], }} />
{loading && (
)} {!loading && hasSearched && searchResults && searchResults.length > 0 ? (
{searchResults.map((filePath, index) => { const { folderPath, fileName, pathSegments } = formatSearchResult(filePath); return (
handleFolderClick(pathSegments)} > {folderPath}
{fileName}
); })}
) : ( !loading && hasSearched && (

Keine Treffer mit dem Suchbegriff gefunden.
Versuche es mit einem anderen Begriff.

) )}
); }