diff --git a/src/Container.svelte b/src/Container.svelte index e0dd568..d5b728e 100644 --- a/src/Container.svelte +++ b/src/Container.svelte @@ -31,8 +31,6 @@ export let debugOutline = false; export let focusOnClick = false; - export let registrar: Registrar = () => () => {}; - export let active = true; const { registerer, ...rest } = new Selectable(name) @@ -93,8 +91,6 @@ }) .getStores(); - $: unregister = registrar(rest.container); - export const selectable = rest.container; export const hasFocus = rest.hasFocus; export const hasFocusWithin = rest.hasFocusWithin; @@ -120,7 +116,6 @@ dispatch('mount', rest.container); return () => { - unregister(); rest.container._unmountContainer(); }; }); diff --git a/src/lib/components/CardGrid.svelte b/src/lib/components/CardGrid.svelte index d5b5584..e370c0b 100644 --- a/src/lib/components/CardGrid.svelte +++ b/src/lib/components/CardGrid.svelte @@ -1,18 +1,33 @@ + + + + {#each $tmdbSeasons || [] as season, i} + { + scrollIntoView({ horizontal: 64 })(event); + seasonIndex = i; + }} + registrar={seasonButtons.registrar(i)} + focusOnClick + > +
+ Season {season.season_number} +
+
+ {/each} +
+ + {#each $tmdbSeasons?.[seasonIndex]?.episodes || [] as episode} + {@const jellyfinEpisodeId = $jellyfinEpisodes?.find( + (i) => + i.IndexNumber === episode.episode_number && i.ParentIndexNumber === episode.season_number + )?.Id} + playerState.streamJellyfinId(jellyfinEpisodeId) + : undefined} + /> + {/each} + +
diff --git a/src/lib/components/SeriesPage/SeriesPage.svelte b/src/lib/components/SeriesPage/SeriesPage.svelte index 4538cdf..33812be 100644 --- a/src/lib/components/SeriesPage/SeriesPage.svelte +++ b/src/lib/components/SeriesPage/SeriesPage.svelte @@ -13,13 +13,13 @@ import { playerState } from '../VideoPlayer/VideoPlayer'; import { modalStack } from '../Modal/modal.store'; import { derived } from 'svelte/store'; - import EpisodeCarousel from './EpisodeCarousel.svelte'; import { scrollIntoView, useRegistrar } from '../../selectable'; import ScrollHelper from '../ScrollHelper.svelte'; import SonarrMediaMangerModal from '../MediaManager/sonarr/SonarrMediaMangerModal.svelte'; import Carousel from '../Carousel/Carousel.svelte'; import TmdbPersonCard from '../PersonCard/TmdbPersonCard.svelte'; import TmdbCard from '../Card/TmdbCard.svelte'; + import EpisodeGrid from './EpisodeGrid.svelte'; export let id: string; @@ -50,7 +50,7 @@ const episodeCards = useRegistrar(); let scrollTop: number; - $: showEpisodeInfo = scrollTop > 140; + $: showEpisodeInfo = false; // scrollTop > 140; @@ -152,7 +152,7 @@ focusOnMount on:navigate={handleGoBack} on:back={handleGoBack} - {registrar} + on:mount={registrar} > {#if $nextJellyfinEpisode}