"use client"; import { useTimelineStore, type TimelineClip, type TimelineTrack, } from "@/stores/timeline-store"; import { useMediaStore, type MediaItem } from "@/stores/media-store"; import { usePlaybackStore } from "@/stores/playback-store"; import { Button } from "@/components/ui/button"; import { useState } from "react"; // Only show in development const SHOW_DEBUG_INFO = process.env.NODE_ENV === "development"; interface ActiveClip { clip: TimelineClip; track: TimelineTrack; mediaItem: MediaItem | null; } export function DevelopmentDebug() { const { tracks } = useTimelineStore(); const { mediaItems } = useMediaStore(); const { currentTime } = usePlaybackStore(); const [showDebug, setShowDebug] = useState(false); // Don't render anything in production if (!SHOW_DEBUG_INFO) return null; // Get active clips at current time const getActiveClips = (): ActiveClip[] => { const activeClips: ActiveClip[] = []; tracks.forEach((track) => { track.clips.forEach((clip) => { const clipStart = clip.startTime; const clipEnd = clip.startTime + (clip.duration - clip.trimStart - clip.trimEnd); if (currentTime >= clipStart && currentTime < clipEnd) { const mediaItem = clip.mediaId === "test" ? null // Test clips don't have a real media item : mediaItems.find((item) => item.id === clip.mediaId) || null; activeClips.push({ clip, track, mediaItem }); } }); }); return activeClips; }; const activeClips = getActiveClips(); return (
{/* Toggle Button */} {/* Debug Info Panel */} {showDebug && (
Active Clips ({activeClips.length})
{activeClips.map((clipData, index) => (
{index + 1}
{clipData.clip.name}
{clipData.mediaItem?.type || "test"}
))} {activeClips.length === 0 && (
No active clips
)}
Time: {currentTime.toFixed(2)}s
)}
); }