setFullyPlayed(true)}
+ playMode='pause'
/>
{/* Must-listen hint */}
diff --git a/src/components/DatasetEntriesList.tsx b/src/components/DatasetEntriesList.tsx
index fe30a6a..9e56b28 100644
--- a/src/components/DatasetEntriesList.tsx
+++ b/src/components/DatasetEntriesList.tsx
@@ -517,7 +517,7 @@ export default function DatasetEntriesList({
{(() => {
const fileExtension = entry.fileName.substring(entry.fileName.lastIndexOf('.'));
const src = `/public/datasets/${datasetId}/${entry.externalId}${fileExtension}`;
- return ;
+ return ;
})()}
|
diff --git a/src/components/ParticipantDetailView.tsx b/src/components/ParticipantDetailView.tsx
index f9a3223..dd7d88a 100644
--- a/src/components/ParticipantDetailView.tsx
+++ b/src/components/ParticipantDetailView.tsx
@@ -168,7 +168,7 @@ export default function ParticipantDetailView({ participant, experimentId }: Par
{(() => {
const fileExtension = selectedAnnotation.fileName.substring(selectedAnnotation.fileName.lastIndexOf('.'));
const src = `/public/datasets/${selectedAnnotation.datasetId}/${selectedAnnotation.externalId}${fileExtension}`;
- return ;
+ return ;
})()}
diff --git a/src/components/WaveformPlayer.tsx b/src/components/WaveformPlayer.tsx
index 9cc42c7..8dcdca6 100644
--- a/src/components/WaveformPlayer.tsx
+++ b/src/components/WaveformPlayer.tsx
@@ -13,6 +13,7 @@ interface WaveformPlayerProps {
// Display options
showWaveform?: boolean; // defaults to true; if false, shows simple player button
+ playMode?: 'pause' | 'stop'; // defaults to 'pause'; determines play/pause vs play/stop behavior
}
const BAR_COUNT = 120;
@@ -22,6 +23,7 @@ export default function WaveformPlayer({
onPlay,
onFullyPlayed,
showWaveform = true,
+ playMode = 'pause',
}: WaveformPlayerProps) {
const { currentAudioId, setCurrentAudio } = useAudio();
@@ -74,11 +76,14 @@ export default function WaveformPlayer({
if (!audio) return;
setCurrentAudio(playerId);
onPlay?.();
- audio.currentTime = 0;
+ // Only reset to start if in stop mode; in pause mode, resume from paused position
+ if (playMode === 'stop') {
+ audio.currentTime = 0;
+ }
audio.play();
setIsPlaying(true);
rafRef.current = requestAnimationFrame(tick);
- }, [playerId, onPlay, tick]);
+ }, [playerId, onPlay, tick, playMode]);
const handlePause = useCallback(() => {
const audio = audioRef.current;
@@ -190,19 +195,25 @@ export default function WaveformPlayer({
onEnded={handleEnded}
/>
|