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

{list.title} — 編集履歴

{revisions.length === 0 ? (

履歴がありません。

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

    {rev.created_at} · {rev.ip_address}

    {i === 0 && 最新}

    タイトル: {snap.title ?? "—"}

    エントリ数: {snap.entries?.length ?? 0}件

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