feat(web): 只按标题的订阅明确提示不会下载;收录版本提示按自动建默认版本改写

- 订阅列表 / 卡片的收录版本位置显示「未关联作品,不会自动搜索和下载」,详情页加一段说明(L5)
- 订阅表单:没有收录版本时说明保存会自动建默认版本,模板说明改为给本订阅创建

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-03 23:22:16 +08:00
1 parent fcd0d8f223
commit df1a9bc1a9
3 files changed
+16 -6

No files matched your search

@@ -73,7 +73,11 @@ export function ProgressBlock({ x, className }: { x: Pick<Item, "progress" | "mo
);
}
export function SlotBadges({ slots, max = 4 }: { slots: Item["slots"]; max?: number }) {
/** 只按标题订阅、没关联媒体库作品时的提示:这类订阅不搜索也不下载(L5) */
export const UNBOUND_HINT = "未关联作品,不会自动搜索和下载";
export function SlotBadges({ slots, max = 4, unbound }: { slots: Item["slots"]; max?: number; unbound?: boolean }) {
if (unbound) return <span className="text-meta text-warning">{UNBOUND_HINT}</span>;
if (slots.length === 0) return <span className="text-meta text-muted-foreground">没有收录版本</span>;
return (
<div className="flex min-w-0 flex-wrap gap-1">
@@ -181,7 +185,7 @@ export function SubscriptionCard({
</div>
</div>
<ProgressBlock x={x} />
<SlotBadges slots={x.slots} />
<SlotBadges slots={x.slots} unbound={!x.mediaEntityId} />
<Meta x={x} />
<p className="text-meta text-muted-foreground">{autoFillText(x.autoFill)}</p>
</article>
@@ -227,7 +231,7 @@ export function SubscriptionRow({
</Link>
<ProgressBlock x={x} className="hidden md:block" />
<div className="relative hidden min-w-0 md:block">
<SlotBadges slots={x.slots} max={3} />
<SlotBadges slots={x.slots} max={3} unbound={!x.mediaEntityId} />
</div>
<span className="hidden text-meta text-muted-foreground tabular-nums md:block">{relTime(x.lastUpdatedAt)}</span>
<span className="hidden text-meta text-muted-foreground tabular-nums md:block">{nextSearchText(x)}</span>