mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 23:59:08 +00:00
Updates branding and naming conventions to use "Seerr" instead of "Jellyseerr" across all files, components, hooks, and translations. Renames files, functions, classes, variables, and UI text to reflect the new naming convention while maintaining identical functionality. Updates asset references including logo and screenshot images. Changes API class name, storage keys, atom names, and all related utilities to use "Seerr" prefix. Modifies translation keys and user-facing text to match the rebrand.
75 lines
2.4 KiB
TypeScript
75 lines
2.4 KiB
TypeScript
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<Props> = ({ sliders }) => {
|
|
const hasSliders = !!sliders;
|
|
|
|
const sortedSliders = useMemo(
|
|
() =>
|
|
sortBy(
|
|
(sliders ?? []).filter((s) => s.enabled),
|
|
"order",
|
|
"asc",
|
|
),
|
|
[sliders],
|
|
);
|
|
|
|
if (!hasSliders) return null;
|
|
|
|
return (
|
|
<View className='flex flex-col space-y-4 mb-8'>
|
|
{sortedSliders.map((slide) => {
|
|
switch (slide.type) {
|
|
case DiscoverSliderType.RECENT_REQUESTS:
|
|
return (
|
|
<RecentRequestsSlide
|
|
key={slide.id}
|
|
slide={slide}
|
|
contentContainerStyle={{ paddingBottom: 16 }}
|
|
/>
|
|
);
|
|
case DiscoverSliderType.NETWORKS:
|
|
return (
|
|
<CompanySlide key={slide.id} slide={slide} data={networks} />
|
|
);
|
|
case DiscoverSliderType.STUDIOS:
|
|
return <CompanySlide key={slide.id} slide={slide} data={studios} />;
|
|
case DiscoverSliderType.MOVIE_GENRES:
|
|
case DiscoverSliderType.TV_GENRES:
|
|
return <GenreSlide key={slide.id} slide={slide} />;
|
|
case DiscoverSliderType.TRENDING:
|
|
case DiscoverSliderType.POPULAR_MOVIES:
|
|
case DiscoverSliderType.UPCOMING_MOVIES:
|
|
case DiscoverSliderType.POPULAR_TV:
|
|
case DiscoverSliderType.UPCOMING_TV:
|
|
return (
|
|
<MovieTvSlide
|
|
key={slide.id}
|
|
slide={slide}
|
|
contentContainerStyle={{ paddingBottom: 16 }}
|
|
/>
|
|
);
|
|
default:
|
|
return null;
|
|
}
|
|
})}
|
|
</View>
|
|
);
|
|
};
|
|
|
|
export default Discover;
|