first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
import {
ProgressCircle,
ProgressCircleProps,
} from '@common/ui/progress/progress-circle';
import {usePlayerStore} from '@common/player/hooks/use-player-store';
import {AnimatePresence, m} from 'framer-motion';
import {opacityAnimation} from '@common/ui/animation/opacity-animation';
interface Props {
className?: string;
trackColor?: string;
fillColor?: string;
size?: ProgressCircleProps['size'];
}
export function BufferingSpinner({
className,
trackColor,
fillColor,
size,
}: Props) {
const isActive = usePlayerStore(
s =>
// YouTube will already show a spinner, no need for a custom one
(s.isBuffering && s.providerName !== 'youtube') ||
(s.playbackStarted && !s.providerReady)
);
return (
<AnimatePresence initial={false}>
{isActive && (
<m.div {...opacityAnimation} className={className}>
<ProgressCircle
isIndeterminate
trackColor={trackColor}
fillColor={fillColor}
size={size}
/>
</m.div>
)}
</AnimatePresence>
);
}