"use client"; import { TextInput } from "@/components/ui/TextInput"; import type { CharacterCardView } from "@/lib/api/types"; interface CharacterCardItemProps { card: CharacterCardView; selected: boolean; onToggle: () => void; // 入库前作者就地编辑名/弧光(最小可编辑面,避免重型表单)。 onEdit?: (patch: Partial) => void; } // 单张角色预览卡(UX §6.6):勾选入库 + 关键字段就地编辑。 export function CharacterCardItem({ card, selected, onToggle, onEdit, }: CharacterCardItemProps) { return (
{onEdit ? ( onEdit({ name: e.target.value })} aria-label="角色名" controlSize="sm" className="min-w-0 flex-1 font-serif text-base" /> ) : ( {card.name} )} {card.role}
{card.traits && card.traits.length > 0 ? (

特质: {card.traits.join("、")}

) : null}

背景: {card.backstory}

弧光: {onEdit ? ( onEdit({ arc: e.target.value })} aria-label="人物弧光" controlSize="sm" className="min-w-0 flex-1" /> ) : ( {card.arc} )}
{card.speech_tics && card.speech_tics.length > 0 ? (

口癖: {card.speech_tics.join("、")}

) : null} {card.relations && card.relations.length > 0 ? ( ) : null}
); }