You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
770 B
25 lines
770 B
import { getEpisodeFromMedia, MWMedia } from "providers"; |
|
import { useWatchedContext, getWatchedFromPortable } from "state/watched"; |
|
import { Episode } from "./EpisodeButton"; |
|
|
|
export interface WatchedEpisodeProps { |
|
media: MWMedia; |
|
onClick?: () => void; |
|
active?: boolean; |
|
} |
|
|
|
export function WatchedEpisode(props: WatchedEpisodeProps) { |
|
const { watched } = useWatchedContext(); |
|
const foundWatched = getWatchedFromPortable(watched.items, props.media); |
|
const episode = getEpisodeFromMedia(props.media); |
|
const watchedPercentage = (foundWatched && foundWatched.percentage) || 0; |
|
|
|
return ( |
|
<Episode |
|
progress={watchedPercentage} |
|
episodeNumber={episode?.episode?.sort ?? 1} |
|
active={props.active} |
|
onClick={props.onClick} |
|
/> |
|
); |
|
}
|
|
|