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,44 @@
import React, {useMemo} from 'react';
import {Title} from '@app/titles/models/title';
import {getSeasonLink, SeasonLinkProps} from '@app/seasons/season-link';
import {Episode} from '@app/titles/models/episode';
import {BaseMediaLink} from '@app/base-media-link';
interface Props extends Omit<SeasonLinkProps, 'seasonNumber'> {
episodeNumber?: number;
seasonNumber?: number;
episode?: Episode;
}
export function EpisodeLink({
title,
seasonNumber,
episodeNumber,
episode,
children,
color = 'inherit',
...linkProps
}: Props) {
const link = useMemo(() => {
return getEpisodeLink(
title,
seasonNumber || episode?.episode_number || 1,
episodeNumber || episode?.episode_number || 1
);
}, [title, seasonNumber, episodeNumber, episode]);
return (
<BaseMediaLink {...linkProps} link={link}>
{children ?? <span>{episode?.name}</span>}
</BaseMediaLink>
);
}
export function getEpisodeLink(
title: Title,
seasonNumber: number | string,
episodeNumber: number | string,
{absolute}: {absolute?: boolean} = {}
): string {
const seasonLink = getSeasonLink(title, seasonNumber, {absolute});
return `${seasonLink}/episode/${episodeNumber}`;
}