import { data, Link, useLoaderData } from "react-router"; import type { LoaderFunctionArgs } from "react-router"; import { getBandById, getBandRevisions } from "~/lib/db.server"; export async function loader({ params }: LoaderFunctionArgs) { const band = getBandById(params.uuid!); if (!band) throw data("Not found", { status: 404 }); const revisions = getBandRevisions(band.id); return { band, revisions }; } export default function BandHistory() { const { band, revisions } = useLoaderData(); return (

{band.name} — 編集履歴

{revisions.length === 0 ? (

履歴がありません。

) : (
    {revisions.map((rev, i) => { let snap: { name?: string; area?: string; links?: unknown[]; artists?: unknown[] } = {}; try { snap = JSON.parse(rev.snapshot); } catch { /* ignore */ } return (
  1. {rev.message}

    {rev.created_at} · {rev.ip_address}

    {i === 0 && ( 最新 )}

    名前: {snap.name ?? "—"}

    {snap.area &&

    拠点: {snap.area}

    }

    リンク: {snap.links?.length ?? 0}件 / メンバー:{" "} {snap.artists?.length ?? 0}人

  2. ); })}
)}
); }