summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/preview-panel.tsx
diff options
context:
space:
mode:
authorJustin322322 <jmrsibonga@bpsu.edu.ph>2025-08-10 05:39:24 +0800
committerGitHub <noreply@github.com>2025-08-09 23:39:24 +0200
commite908bad1679b8182ffbe6006e71bf38c7ada1bc0 (patch)
tree589f46991aa4d9adffafb2d129e0acd819a88255 /apps/web/src/components/editor/preview-panel.tsx
parent8c205273b7f812103ef328aa66812260e1df3183 (diff)
downloadopencut-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/preview-panel.tsx')
-rw-r--r--apps/web/src/components/editor/preview-panel.tsx7
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}