"use client"; import type { OutlineChapterView } from "@/lib/api/types"; import { isCloseWindow, windowBadgeLabel, } from "@/lib/outline/outline"; interface OutlineChapterRowProps { chapter: OutlineChapterView; } // 单章大纲行(UX §6.7):章号 + beats + 伏笔窗口徽标(⚑)。 // 接近回收窗口的徽标用琥珀 + 「可回收」提示(a11y:图标 + 文案,不单靠色)。 export function OutlineChapterRow({ chapter }: OutlineChapterRowProps) { const windows = chapter.foreshadow_windows ?? []; return (
  • 第 {chapter.no} 章 {windows.map((w) => { const close = isCloseWindow(chapter, w); return ( {windowBadgeLabel(w)} {close ? " · 可回收" : ""} ); })}
    {chapter.beats && chapter.beats.length > 0 ? (

    beats: {chapter.beats.join(" / ")}

    ) : (

    (无节拍)

    )}
  • ); }