import { Captions } from "lucide-react"; import { SubtitleDialog } from "~/components/subtitles/subtitle-dialog.tsx"; import type { SlotRegistry } from "~/lib/slots.ts"; // 补字幕(功能模块样板,ADR-006):作品页操作区「补字幕」、整理记录行菜单「补字幕」,都打开同一个补字幕对话框。 export function registerSubtitles(registry: SlotRegistry): void { registry.register("entity.actions", { id: "subtitles.entity", feature: "subtitles", label: "补字幕", icon: Captions, visible: ({ entity }) => entity.status !== "merged", Dialog: ({ entity, onClose }) => ( !o && onClose()} /> ), }); registry.register("organize.record.actions", { id: "subtitles.record", feature: "subtitles", label: "补字幕", icon: Captions, // 入库成功(或部分成功)且认到作品的整理才有视频可配字幕 visible: ({ record }) => !!record.media && (record.status === "succeeded" || record.status === "partial") && ["copy", "move", "in_place"].includes(record.action), Dialog: ({ record, onClose }) => ( !o && onClose()} /> ), }); }