"use client";

import type { ForeshadowSuggestion } from "@/lib/review/sse";

interface ForeshadowSuggestionsProps {
  suggestions: ForeshadowSuggestion[];
  // 审项是否未完成（incomplete）。
  incomplete: boolean;
}

// 伏笔建议区（UX §6.4 ②）：planted「新埋待确认」/ resolved「疑似回收」，只读建议。
// 不静默写库（不变量#3）：仅展示，登记/回收经伏笔看板显式确认。
export function ForeshadowSuggestions({
  suggestions,
  incomplete,
}: ForeshadowSuggestionsProps) {
  return (
    <section className="mb-4">
      <h2 className="text-xs font-semibold uppercase tracking-wide text-ink-soft">
        伏笔 (foreshadow-analyst)
      </h2>
      {incomplete ? (
        <p className="mt-1 text-xs text-overdue">◌ 未完成</p>
      ) : suggestions.length === 0 ? (
        <p className="mt-1 text-xs text-ink-soft">无伏笔建议。</p>
      ) : (
        <ul className="mt-2 space-y-2">
          {suggestions.map((s, i) => (
            <li
              key={i}
              className="rounded border border-line bg-panel p-2 text-xs"
            >
              <span
                className={`mr-1 rounded px-1.5 py-0.5 ${
                  s.kind === "resolved"
                    ? "bg-pass/15 text-pass"
                    : "bg-[var(--color-cinnabar-wash)] text-cinnabar"
                }`}
              >
                {s.kind === "resolved" ? "⚑ 疑似回收" : "＋ 新埋待确认"}
              </span>
              {s.code ? (
                <span className="font-mono text-ink-soft"> {s.code}</span>
              ) : null}
              <p className="mt-1 text-ink">{s.title}</p>
              {s.where ? (
                <span className="text-ink-soft">{s.where}</span>
              ) : null}
              {s.note ? (
                <p className="mt-0.5 text-ink-soft">{s.note}</p>
              ) : null}
            </li>
          ))}
        </ul>
      )}
    </section>
  );
}
