diff options
| author | Justin322322 <jmrsibonga@bpsu.edu.ph> | 2025-08-10 05:39:24 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-09 23:39:24 +0200 |
| commit | e908bad1679b8182ffbe6006e71bf38c7ada1bc0 (patch) | |
| tree | 589f46991aa4d9adffafb2d129e0acd819a88255 /apps/web/src/components/editor | |
| parent | 8c205273b7f812103ef328aa66812260e1df3183 (diff) | |
| download | opencut-e908bad1679b8182ffbe6006e71bf38c7ada1bc0.tar.gz | |
fix(preview): mute button not affecting embedded video audio, ensure topmost video track renders above lower tracksmute button not affecting embedded video audio (#529) (#532)
Diffstat (limited to 'apps/web/src/components/editor')
| -rw-r--r-- | apps/web/src/components/editor/preview-panel.tsx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/web/src/components/editor/preview-panel.tsx b/apps/web/src/components/editor/preview-panel.tsx index 8842b482..a47e446a 100644 --- a/apps/web/src/components/editor/preview-panel.tsx +++ b/apps/web/src/components/editor/preview-panel.tsx @@ -234,7 +234,8 @@ export function PreviewPanel() { const getActiveElements = (): ActiveElement[] => { const activeElements: ActiveElement[] = []; - tracks.forEach((track) => { + // Iterate tracks from bottom to top so topmost track renders last (on top) + ;[...tracks].reverse().forEach((track) => { track.elements.forEach((element) => { if (element.hidden) return; const elementStart = element.startTime; @@ -311,6 +312,7 @@ export function PreviewPanel() { trimEnd={element.trimEnd} clipDuration={element.duration} className="w-full h-full object-cover" + trackMuted={true} /> </div> ); @@ -434,6 +436,7 @@ export function PreviewPanel() { trimStart={element.trimStart} trimEnd={element.trimEnd} clipDuration={element.duration} + trackMuted={elementData.track.muted} /> </div> ); @@ -459,7 +462,7 @@ export function PreviewPanel() { // Audio elements (no visual representation) if (mediaItem.type === "audio") { return ( - <div key={element.id} className="absolute inset-0"> + <div key={element.id} className="absolute inset-0" style={{ pointerEvents: "none" }}> <AudioPlayer src={mediaItem.url!} clipStartTime={element.startTime} |
