import { useMemo } from "react"

import type { SelectedFile, UsedFile } from "@shared/context/WorkspaceContext"

export interface TimelineTracks {
	showWaveform: boolean
	showVideoFrames: boolean
	showSubtitles: boolean
	showSilence: boolean
	showBRoll: boolean
}

const DEFAULT_TRACKS: TimelineTracks = {
	showWaveform: false,
	showVideoFrames: false,
	showSubtitles: false,
	showSilence: false,
	showBRoll: false,
}

export function useTimelineTracks(
	usedFiles: UsedFile[],
	selectedFile: SelectedFile | null,
): TimelineTracks {
	return useMemo(() => {
		if (!selectedFile) return DEFAULT_TRACKS

		const hasVideo = usedFiles.some((f) => f.iconType === "video")
		const hasAudio = usedFiles.some(
			(f) => f.iconType === "audio" || f.iconType === "video",
		)
		const hasTranscription = usedFiles.some(
			(f) => f.artifactType === "TRANSCRIPTION_JSON",
		)
		const hasSilence = usedFiles.some(
			(f) => f.artifactType === "SILENCE_REMOVED_VIDEO",
		)

		return {
			showVideoFrames: hasVideo,
			showWaveform: hasAudio,
			showSubtitles: hasTranscription,
			showSilence: hasSilence,
			showBRoll: false,
		}
	}, [usedFiles, selectedFile])
}
