fp/packages/next/app/components/archive-progress.tsx

33 lines
1.3 KiB
TypeScript

import { getAllStreamsForVtuber, getStreamCountForVtuber } from "@/lib/streams";
import { getVodsForVtuber } from "@/lib/vods";
import { IVtuber } from "@/lib/vtubers";
export interface IArchiveProgressProps {
vtuber: IVtuber;
}
export default async function ArchiveProgress ({ vtuber }: IArchiveProgressProps) {
// // Check if totalStreams is not zero before calculating completedPercentage
// const completedPercentage = (totalStreams !== 0) ? Math.round(eligibleStreams / totalStreams * 100) : 0;
const totalStreams = await getStreamCountForVtuber(vtuber.id);
const eligibleStreams = await getStreamCountForVtuber(vtuber.id, ['good', 'issue']);
const completedPercentage = (eligibleStreams / totalStreams) * 100
return (
<div>
{/* <p>
{totalStreams} known streams<br />
{eligibleStreams} archived<br />
</p> */}
<p className="heading">{eligibleStreams}/{totalStreams} Streams Archived ({completedPercentage}%)</p>
<progress className="progress is-success" value={eligibleStreams} max={totalStreams}>{completedPercentage}%</progress>
</div>
)
// @todo
// return (
// <div>
// <i><p className="">{(vods) ? vods.data.length : 0} vods</p></i>
// </div>
// )
}