Compare commits
3 Commits
v0.1.6.34
...
cebdf7a5a2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cebdf7a5a2 | ||
|
|
afbdb74516 | ||
|
|
9372264174 |
@@ -24,12 +24,12 @@ COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY . .
|
||||
|
||||
# Extract version: use build arg if provided, otherwise get from git, fallback to package.json
|
||||
# Only use tags that are reachable from the current commit to ensure version matches the code
|
||||
RUN if [ -n "$APP_VERSION" ]; then \
|
||||
echo "$APP_VERSION" > /tmp/version.txt; \
|
||||
else \
|
||||
(git describe --tags --exact-match 2>/dev/null || \
|
||||
git describe --tags --abbrev=0 2>/dev/null || \
|
||||
git tag --sort=-version:refname | head -1 2>/dev/null || \
|
||||
(grep -o '"version": "[^"]*"' package.json 2>/dev/null | cut -d'"' -f4 | sed 's/^/v/') || \
|
||||
echo "dev") > /tmp/version.txt; \
|
||||
fi && \
|
||||
|
||||
@@ -72,7 +72,10 @@ const AudioPlayer = forwardRef<AudioPlayerRef, AudioPlayerProps>(({ src, unlocke
|
||||
if (autoPlay) {
|
||||
// Delay play slightly to ensure currentTime sticks
|
||||
setTimeout(() => {
|
||||
const playPromise = audioRef.current?.play();
|
||||
if (audioRef.current) {
|
||||
// Ensure currentTime is set before playing
|
||||
audioRef.current.currentTime = startTime;
|
||||
const playPromise = audioRef.current.play();
|
||||
if (playPromise !== undefined) {
|
||||
playPromise
|
||||
.then(() => {
|
||||
@@ -86,8 +89,13 @@ const AudioPlayer = forwardRef<AudioPlayerRef, AudioPlayerProps>(({ src, unlocke
|
||||
setIsPlaying(false);
|
||||
});
|
||||
}
|
||||
}
|
||||
}, 150);
|
||||
}
|
||||
} else if (startTime !== undefined && audioRef.current.currentTime < startTime) {
|
||||
// If startTime is set and currentTime is before it, reset to startTime
|
||||
// This handles the case where the audio element was reset or reloaded
|
||||
audioRef.current.currentTime = startTime;
|
||||
}
|
||||
}
|
||||
}, [src, unlockedSeconds, startTime, autoPlay, processedSrc, processedUnlockedSeconds]);
|
||||
@@ -97,6 +105,16 @@ const AudioPlayer = forwardRef<AudioPlayerRef, AudioPlayerProps>(({ src, unlocke
|
||||
play: () => {
|
||||
if (!audioRef.current) return;
|
||||
|
||||
// Check if we need to reset to startTime
|
||||
const current = audioRef.current.currentTime;
|
||||
const elapsed = current - startTime;
|
||||
|
||||
// Reset if: never played before, current position is before startTime, or we've exceeded the unlocked segment
|
||||
if (!hasPlayedOnce || current < startTime || elapsed >= unlockedSeconds) {
|
||||
// Reset to start of segment
|
||||
audioRef.current.currentTime = startTime;
|
||||
}
|
||||
|
||||
const playPromise = audioRef.current.play();
|
||||
if (playPromise !== undefined) {
|
||||
playPromise
|
||||
@@ -121,8 +139,20 @@ const AudioPlayer = forwardRef<AudioPlayerRef, AudioPlayerProps>(({ src, unlocke
|
||||
|
||||
if (isPlaying) {
|
||||
audioRef.current.pause();
|
||||
setIsPlaying(false);
|
||||
} else {
|
||||
// Check if we need to reset to startTime
|
||||
const current = audioRef.current.currentTime;
|
||||
const elapsed = current - startTime;
|
||||
|
||||
// Reset if: never played before, current position is before startTime, or we've exceeded the unlocked segment
|
||||
if (!hasPlayedOnce || current < startTime || elapsed >= unlockedSeconds) {
|
||||
// Reset to start of segment
|
||||
audioRef.current.currentTime = startTime;
|
||||
}
|
||||
|
||||
audioRef.current.play();
|
||||
setIsPlaying(true);
|
||||
onPlay?.();
|
||||
|
||||
if (hasPlayedOnce) {
|
||||
@@ -132,7 +162,6 @@ const AudioPlayer = forwardRef<AudioPlayerRef, AudioPlayerProps>(({ src, unlocke
|
||||
onHasPlayedChange?.(true); // Notify parent
|
||||
}
|
||||
}
|
||||
setIsPlaying(!isPlaying);
|
||||
};
|
||||
|
||||
const handleTimeUpdate = () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hoerdle",
|
||||
"version": "0.1.6.34",
|
||||
"version": "0.1.6.35",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
Reference in New Issue
Block a user