import type { EditingTemplate } from "@/api/editing-planner" import type { ClipData } from "../types" /** * 计算所有片段的总时长 */ export function calculateTotalDuration(clips: ClipData[]): number { return clips.reduce((sum, c) => sum + c.duration, 0) } /** * 获取当前选中的模板 */ export function getCurrentTemplate( templates: EditingTemplate[], loadedTemplateId: string | null, ): EditingTemplate | undefined { return templates.find((t) => t.id === loadedTemplateId) } /** * 根据分类和搜索词筛选模板 */ export function getFilteredTemplates( templates: EditingTemplate[], currentFilter: string, searchQuery: string, ): EditingTemplate[] { return templates.filter((t) => { if (currentFilter !== "全部" && t.category !== currentFilter) return false if (searchQuery && !t.name.toLowerCase().includes(searchQuery.toLowerCase())) return false return true }) } /** * 获取当前选中的片段 */ export function getSelectedClip(clips: ClipData[], selectedClipId: string | null): ClipData | null { return clips.find((c) => c.id === selectedClipId) || null }