fix: make progress bars initialise out of view

This commit is contained in:
Lei Nelissen
2024-07-25 14:06:06 +02:00
parent 83b890192e
commit 0b13e69854
4 changed files with 8 additions and 6 deletions

View File

@@ -20,8 +20,8 @@ export function calculateProgressTranslation(
const completion = position / reference;
// GUARD: Check whether the calculated number is valid and not infinite
if (Number.isNaN(completion) || !Number.isFinite(completion)) {
return 0;
if (Number.isNaN(completion) || !Number.isFinite(completion) || !width) {
return -1_000;
}
const output = (1 - completion) * -1 * width;

View File

@@ -119,8 +119,8 @@ function NowPlaying({ offset = 0, inset }: { offset?: number, inset?: boolean })
const navigation = useNavigation<NavigationProp>();
const bufferAnimation = useRef(new Animated.Value(0));
const progressAnimation = useRef(new Animated.Value(0));
const bufferAnimation = useRef(new Animated.Value(-1_000));
const progressAnimation = useRef(new Animated.Value(-1_000));
const openNowPlayingModal = useCallback(() => {
navigation.navigate('Player');

View File

@@ -47,7 +47,7 @@ export default function LyricsProgress({
// Calculate the progress animation
const progressAnimation = useDerivedValue(() => {
// GUARD: If the animatino is not active, hide the progress bar
if (!active) return -width.value;
if (!active) return -1_000;
// Calculate how far along we are
const progress = calculateProgressTranslation(position - start, end - start, width.value);
@@ -65,6 +65,8 @@ export default function LyricsProgress({
};
});
console.log(progressAnimation.value);
// GUARD: Only show durations if they last for more than 5 seconds.
if (duration < 5e7) {
return null;

View File

@@ -187,7 +187,7 @@ function ProgressBar() {
<ProgressTrack
style={[
styles.themeBackground,
bufferStyles
bufferStyles,
]}
opacity={0.15}
/>