import { ProgressBarService } from "renderer/services/progress-bar.service"; import { AnimatePresence, motion } from "framer-motion"; import BeatRunningImg from "../../../../assets/images/apngs/beat-running.png"; import BeatWaitingImg from "../../../../assets/images/apngs/beat-waiting.png"; import { useObservable } from "renderer/hooks/use-observable.hook"; import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; import { useService } from "renderer/hooks/use-service.hook"; export function BsmProgressBar() { const progressBarService = useService(ProgressBarService); const progressData = useObservable(() => progressBarService.progressData$); const visible = useObservable(() => progressBarService.visible$); const style = useObservable(() => progressBarService.style$); const progressLabel = (() => { if (!progressData) { return ""; } if (progressData?.label) { return progressData.label; } return `${Math.floor(progressData.progression)}%`; })(); const progressValue: number = progressData?.progression; const { firstColor, secondColor } = useThemeColor(); return ( {" "} {visible && (
{!!progressValue && (
{progressLabel}
)} {!progressValue && }
)}{" "}
); }