github-actions[bot]
Sync from https://github.com/felladrin/MiniSearch
a5edb41
import { Alert } from "@mantine/core";
import { IconInfoCircle } from "@tabler/icons-react";
import { usePubSub } from "create-pubsub/react";
import { Suspense, lazy } from "react";
import {
textSearchResultsPubSub,
textSearchStatePubSub,
} from "../../../../modules/pubSub";
const SearchResultsList = lazy(() => import("./SearchResultsList"));
const TextResultsLoadingState = lazy(() => import("./TextResultsLoadingState"));
export default function TextSearchResults() {
const [searchState] = usePubSub(textSearchStatePubSub);
const [results] = usePubSub(textSearchResultsPubSub);
if (searchState === "running") {
return (
<Suspense>
<TextResultsLoadingState />
</Suspense>
);
}
if (searchState === "completed") {
if (results.length > 0) {
return (
<Suspense>
<SearchResultsList searchResults={results} />
</Suspense>
);
}
return (
<Alert
variant="light"
color="yellow"
title="No results found"
icon={<IconInfoCircle />}
>
No text results found for your search query.
</Alert>
);
}
if (searchState === "failed") {
return (
<Alert
variant="light"
color="red"
title="Search failed"
icon={<IconInfoCircle />}
>
Failed to fetch text results. Please try refreshing the page.
</Alert>
);
}
return null;
}