e.stopPropagation()}>
-
diff --git a/web/frontend/src/components/audio/AudioPlayer.tsx b/web/frontend/src/components/audio/AudioPlayer.tsx
index cfe553a9..0a90ad21 100644
--- a/web/frontend/src/components/audio/AudioPlayer.tsx
+++ b/web/frontend/src/components/audio/AudioPlayer.tsx
@@ -1,8 +1,7 @@
import { useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react';
import WaveSurfer from 'wavesurfer.js';
-import { Play, Pause, Volume2, VolumeX, SkipBack, SkipForward } from 'lucide-react';
+import { Play, Pause, SkipBack, SkipForward } from 'lucide-react';
import { Button } from '@/components/ui/button';
-import { Slider } from '@/components/ui/slider';
import { useTheme } from '@/contexts/ThemeContext';
import { useAuth } from '@/contexts/AuthContext';
@@ -39,8 +38,6 @@ export const AudioPlayer = forwardRef
(({
const [isPlaying, setIsPlaying] = useState(false);
const [duration, setDuration] = useState(0);
const [currentTime, setCurrentTime] = useState(0);
- const [volume, setVolume] = useState(1);
- const [isMuted, setIsMuted] = useState(false);
const [isReady, setIsReady] = useState(false);
useImperativeHandle(ref, () => ({
@@ -156,23 +153,6 @@ export const AudioPlayer = forwardRef(({
wavesurferRef.current?.skip(-5);
};
- const handleVolumeChange = (value: number[]) => {
- const newVol = value[0];
- setVolume(newVol);
- if (newVol > 0) setIsMuted(false);
- wavesurferRef.current?.setVolume(newVol);
- };
-
- const toggleMute = () => {
- if (isMuted) {
- wavesurferRef.current?.setVolume(volume);
- setIsMuted(false);
- } else {
- wavesurferRef.current?.setVolume(0);
- setIsMuted(true);
- }
- };
-
const formatTime = (seconds: number) => {
const mins = Math.floor(seconds / 60);
const secs = Math.floor(seconds % 60);
@@ -182,21 +162,33 @@ export const AudioPlayer = forwardRef(({
return (
- {/* Main Controls Row */}
-
- {/* Play/Pause Button - Prominent */}
-
+
+ {/* Left Column: Playback Controls */}
+
+ {/* Play/Pause Button */}
+
- {/* Waveform & Time Info */}
+ {/* Seek Buttons (Below Play/Pause) */}
+
+
+
+
+
+
+ {/* Right Column: Waveform & Info */}
{/* Time & Title Row */}
@@ -222,37 +214,7 @@ export const AudioPlayer = forwardRef
(({
{/* Secondary Controls Row (Volume, Skip) - Only visible when expanded */}
- {!collapsed && (
-
-
-
-
-
-
-
-
-
-
-
-
- )}
);
});
diff --git a/web/frontend/src/components/transcript/TranscriptView.tsx b/web/frontend/src/components/transcript/TranscriptView.tsx
index c7c44965..2981fb59 100644
--- a/web/frontend/src/components/transcript/TranscriptView.tsx
+++ b/web/frontend/src/components/transcript/TranscriptView.tsx
@@ -43,7 +43,7 @@ export const TranscriptView = forwardRef
(({
if (!transcript) {
return (
-
+
);
@@ -56,11 +56,11 @@ export const TranscriptView = forwardRef
(({
// Render transcript with word-level highlighting for compact view
const renderCompactView = () => {
if (!transcript.word_segments || transcript.word_segments.length === 0) {
- return {transcript.text}
;
+ return {transcript.text}
;
}
return (
-
+
{transcript.word_segments.map((word, index) => {
const isHighlighted = index === currentWordIndex;
const isAnnotated = notes.some(n => index >= n.start_word_index && index <= n.end_word_index);
@@ -76,8 +76,8 @@ export const TranscriptView = forwardRef
(({
className={cn(
"cursor-text transition-colors duration-150 rounded px-0.5 inline-block",
"hover:bg-blue-100 dark:hover:bg-blue-900/30",
- isHighlighted && "bg-amber-200 dark:bg-amber-700/50 text-stone-900 dark:text-stone-50 font-medium shadow-sm",
- !isHighlighted && isAnnotated && "bg-stone-200 dark:bg-stone-700/50 border-b-2 border-amber-400 dark:border-amber-600"
+ isHighlighted && "bg-amber-200 dark:bg-amber-700/50 text-gray-900 dark:text-gray-50 font-medium shadow-sm",
+ !isHighlighted && isAnnotated && "bg-gray-200 dark:bg-gray-700/50 border-b-2 border-amber-400 dark:border-amber-600"
)}
>
{word.word}{" "}
@@ -123,8 +123,8 @@ export const TranscriptView = forwardRef(({
className={cn(
"cursor-text transition-colors duration-150 rounded px-0.5 inline-block",
"hover:bg-blue-100 dark:hover:bg-blue-900/30",
- isHighlighted && "bg-amber-200 dark:bg-amber-700/50 text-stone-900 dark:text-stone-50 font-medium shadow-sm",
- !isHighlighted && isAnnotated && "bg-stone-200 dark:bg-stone-700/50 border-b-2 border-amber-400 dark:border-amber-600"
+ isHighlighted && "bg-amber-200 dark:bg-amber-700/50 text-gray-900 dark:text-gray-50 font-medium shadow-sm",
+ !isHighlighted && isAnnotated && "bg-gray-200 dark:bg-gray-700/50 border-b-2 border-amber-400 dark:border-amber-600"
)}
>
{word.word}{" "}
@@ -141,15 +141,15 @@ export const TranscriptView = forwardRef(({
return (
{transcript.segments.map((segment, i) => (
-
+
{/* Timestamp & Speaker */}
-
-
+
+
{new Date(segment.start * 1000).toISOString().substr(11, 8)}
{segment.speaker && (
{getDisplaySpeakerName(segment.speaker)}
@@ -158,7 +158,7 @@ export const TranscriptView = forwardRef(({
{/* Text */}
-
+
{renderSegmentWords(segment)}
@@ -170,7 +170,7 @@ export const TranscriptView = forwardRef(({
return (
{mode === 'compact' ? renderCompactView() : renderExpandedView()}