import { sortBy } from "lodash"; import type React from "react"; import { useMemo } from "react"; import { View } from "react-native"; import CompanySlide from "@/components/seerr/discover/CompanySlide"; import GenreSlide from "@/components/seerr/discover/GenreSlide"; import MovieTvSlide from "@/components/seerr/discover/MovieTvSlide"; import RecentRequestsSlide from "@/components/seerr/discover/RecentRequestsSlide"; import { DiscoverSliderType } from "@/utils/jellyseerr/server/constants/discover"; import type DiscoverSlider from "@/utils/jellyseerr/server/entity/DiscoverSlider"; import { networks } from "@/utils/jellyseerr/src/components/Discover/NetworkSlider"; import { studios } from "@/utils/jellyseerr/src/components/Discover/StudioSlider"; interface Props { sliders?: DiscoverSlider[]; } const Discover: React.FC = ({ sliders }) => { const hasSliders = !!sliders; const sortedSliders = useMemo( () => sortBy( (sliders ?? []).filter((s) => s.enabled), "order", ), [sliders], ); if (!hasSliders) return null; return ( {sortedSliders.map((slide) => { switch (slide.type) { case DiscoverSliderType.RECENT_REQUESTS: return ( ); case DiscoverSliderType.NETWORKS: return ( ); case DiscoverSliderType.STUDIOS: return ; case DiscoverSliderType.MOVIE_GENRES: case DiscoverSliderType.TV_GENRES: return ; case DiscoverSliderType.TRENDING: case DiscoverSliderType.POPULAR_MOVIES: case DiscoverSliderType.UPCOMING_MOVIES: case DiscoverSliderType.POPULAR_TV: case DiscoverSliderType.UPCOMING_TV: return ( ); default: return null; } })} ); }; export default Discover;