remove hardcoded catalog type

This commit is contained in:
chrisk325 2026-03-14 00:55:32 +05:30 committed by GitHub
parent 4a9f67431f
commit 7436d2d59a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -84,7 +84,7 @@ const SearchScreen = () => {
// Discover section state // Discover section state
const [discoverCatalogs, setDiscoverCatalogs] = useState<DiscoverCatalog[]>([]); const [discoverCatalogs, setDiscoverCatalogs] = useState<DiscoverCatalog[]>([]);
const [selectedCatalog, setSelectedCatalog] = useState<DiscoverCatalog | null>(null); const [selectedCatalog, setSelectedCatalog] = useState<DiscoverCatalog | null>(null);
const [selectedDiscoverType, setSelectedDiscoverType] = useState<'movie' | 'series'>('movie'); const [selectedDiscoverType, setSelectedDiscoverType] = useState<string>('movie');
const [selectedDiscoverGenre, setSelectedDiscoverGenre] = useState<string | null>(null); const [selectedDiscoverGenre, setSelectedDiscoverGenre] = useState<string | null>(null);
const [page, setPage] = useState(1); const [page, setPage] = useState(1);
const [hasMore, setHasMore] = useState(true); const [hasMore, setHasMore] = useState(true);
@ -127,7 +127,7 @@ const SearchScreen = () => {
try { try {
// Load saved type // Load saved type
const savedType = await mmkvStorage.getItem(DISCOVER_TYPE_KEY); const savedType = await mmkvStorage.getItem(DISCOVER_TYPE_KEY);
if (savedType && (savedType === 'movie' || savedType === 'series')) { if (savedType) {
setSelectedDiscoverType(savedType); setSelectedDiscoverType(savedType);
} }
@ -141,7 +141,7 @@ const SearchScreen = () => {
}, []); }, []);
// Save discover settings when they change // Save discover settings when they change
const saveDiscoverSettings = useCallback(async (type: 'movie' | 'series', catalog: DiscoverCatalog | null, genre: string | null) => { const saveDiscoverSettings = useCallback(async (type: string, catalog: DiscoverCatalog | null, genre: string | null) => {
try { try {
// Save type // Save type
await mmkvStorage.setItem(DISCOVER_TYPE_KEY, type); await mmkvStorage.setItem(DISCOVER_TYPE_KEY, type);
@ -267,10 +267,8 @@ const SearchScreen = () => {
if (isMounted.current) { if (isMounted.current) {
const allCatalogs: DiscoverCatalog[] = []; const allCatalogs: DiscoverCatalog[] = [];
for (const [type, catalogs] of Object.entries(filters.catalogsByType)) { for (const [type, catalogs] of Object.entries(filters.catalogsByType)) {
if (type === 'movie' || type === 'series') { for (const catalog of catalogs) {
for (const catalog of catalogs) { allCatalogs.push({ ...catalog, type });
allCatalogs.push({ ...catalog, type });
}
} }
} }
setDiscoverCatalogs(allCatalogs); setDiscoverCatalogs(allCatalogs);
@ -636,9 +634,10 @@ const SearchScreen = () => {
}; };
const availableGenres = useMemo(() => selectedCatalog?.genres || [], [selectedCatalog]); const availableGenres = useMemo(() => selectedCatalog?.genres || [], [selectedCatalog]);
const availableTypes = useMemo(() => [...new Set(discoverCatalogs.map(c => c.type))], [discoverCatalogs]);
const filteredCatalogs = useMemo(() => discoverCatalogs.filter(c => c.type === selectedDiscoverType), [discoverCatalogs, selectedDiscoverType]); const filteredCatalogs = useMemo(() => discoverCatalogs.filter(c => c.type === selectedDiscoverType), [discoverCatalogs, selectedDiscoverType]);
const handleTypeSelect = (type: 'movie' | 'series') => { const handleTypeSelect = (type: string) => {
setSelectedDiscoverType(type); setSelectedDiscoverType(type);
// Save type setting // Save type setting
@ -893,6 +892,7 @@ const SearchScreen = () => {
selectedDiscoverGenre={selectedDiscoverGenre} selectedDiscoverGenre={selectedDiscoverGenre}
filteredCatalogs={filteredCatalogs} filteredCatalogs={filteredCatalogs}
availableGenres={availableGenres} availableGenres={availableGenres}
availableTypes={availableTypes}
onTypeSelect={handleTypeSelect} onTypeSelect={handleTypeSelect}
onCatalogSelect={handleCatalogSelect} onCatalogSelect={handleCatalogSelect}
onGenreSelect={handleGenreSelect} onGenreSelect={handleGenreSelect}