import { Form, Link, useLoaderData } from "react-router"; import type { Route } from "./+types/search"; import { searchAll } from "~/lib/db.server"; export function loader({ request }: Route.LoaderArgs) { const q = new URL(request.url).searchParams.get("q")?.trim() ?? ""; if (!q) return { q, bands: [], artists: [] }; const { bands, artists } = searchAll(q); return { q, bands, artists }; } export default function Search() { const { q, bands, artists } = useLoaderData(); const hasResults = bands.length > 0 || artists.length > 0; return (

検索

{!q ? (

検索キーワードを入力してください。

) : !hasResults ? (

「{q}」に一致する結果が見つかりませんでした。

) : ( <> {bands.length > 0 && (

Bands

    {bands.map((band) => (
  • {band.name} {band.area && ( {band.area} )} {band.status === "hiatus" && ( 活動休止 )}
  • ))}
)} {artists.length > 0 && (

Artists

    {artists.map((artist) => (
  • {artist.name}
  • ))}
)} )}
); }