import { data, Link, useLoaderData } from "react-router"; import type { LoaderFunctionArgs } from "react-router"; import { getArtistBands, getArtistById, getArtistLinks, getArtistRevisions } from "~/lib/db.server"; export async function loader({ params }: LoaderFunctionArgs) { const artist = getArtistById(params.uuid!); if (!artist) throw data("Not found", { status: 404 }); const links = getArtistLinks(artist.id); const bands = getArtistBands(artist.id); const revisions = getArtistRevisions(artist.id); return { artist, links, bands, latest: revisions[0] ?? null }; } export default function ArtistDetail() { const { artist, links, bands, latest } = useLoaderData(); return (

{artist.name}

履歴 編集
{bands.length > 0 && (

バンド

    {bands.map((b) => (
  • {b.band_name} {b.role && {b.role}}
  • ))}
)} {links.length > 0 && (

リンク

)}

/artists/of/{artist.id}

/artists/named/{artist.slug}

{latest && (

最終更新: {latest.created_at} — {latest.message}

)}
); }