Refactor StreamsScreen to remove references to source_1 and source_2; update loading state management and display logic for improved clarity and performance.

This commit is contained in:
Nayif Noushad 2025-04-18 00:06:18 +05:30
parent 9d44d25656
commit e96f8b6e3a

View file

@ -247,24 +247,8 @@ export const StreamsScreen = () => {
setLoadStartTime(now); setLoadStartTime(now);
setProviderLoadTimes({}); setProviderLoadTimes({});
// Reset provider status // Reset provider status - only for stremio addons
setProviderStatus({ setProviderStatus({
'source_1': {
loading: true,
success: false,
error: false,
message: 'Loading...',
timeStarted: now,
timeCompleted: 0
},
'source_2': {
loading: true,
success: false,
error: false,
message: 'Loading...',
timeStarted: now,
timeCompleted: 0
},
'stremio': { 'stremio': {
loading: true, loading: true,
success: false, success: false,
@ -275,10 +259,8 @@ export const StreamsScreen = () => {
} }
}); });
// Also update the simpler loading state // Also update the simpler loading state - only for stremio
setLoadingProviders({ setLoadingProviders({
'source_1': true,
'source_2': true,
'stremio': true 'stremio': true
}); });
} }
@ -288,8 +270,6 @@ export const StreamsScreen = () => {
if (type === 'series' && episodeId) { if (type === 'series' && episodeId) {
logger.log(`🎬 Loading episode streams for: ${episodeId}`); logger.log(`🎬 Loading episode streams for: ${episodeId}`);
setLoadingProviders({ setLoadingProviders({
'source_1': true,
'source_2': true,
'stremio': true 'stremio': true
}); });
setSelectedEpisode(episodeId); setSelectedEpisode(episodeId);
@ -297,8 +277,6 @@ export const StreamsScreen = () => {
} else if (type === 'movie') { } else if (type === 'movie') {
logger.log(`🎬 Loading movie streams for: ${id}`); logger.log(`🎬 Loading movie streams for: ${id}`);
setLoadingProviders({ setLoadingProviders({
'source_1': true,
'source_2': true,
'stremio': true 'stremio': true
}); });
loadStreams(); loadStreams();
@ -446,14 +424,13 @@ export const StreamsScreen = () => {
if (indexB !== -1) return 1; if (indexB !== -1) return 1;
return 0; return 0;
}) })
.filter(provider => provider !== 'source_1' && provider !== 'source_2') // Filter out source_1 and source_2
.map(provider => { .map(provider => {
const addonInfo = streams[provider]; const addonInfo = streams[provider];
const installedAddon = installedAddons.find(addon => addon.id === provider); const installedAddon = installedAddons.find(addon => addon.id === provider);
let displayName = provider; let displayName = provider;
if (provider === 'source_1') displayName = 'Source 1'; if (provider === 'external_sources') displayName = 'External Sources';
else if (provider === 'source_2') displayName = 'Source 2';
else if (provider === 'external_sources') displayName = 'External Sources';
else if (installedAddon) displayName = installedAddon.name; else if (installedAddon) displayName = installedAddon.name;
else if (addonInfo?.addonName) displayName = addonInfo.addonName; else if (addonInfo?.addonName) displayName = addonInfo.addonName;
@ -466,12 +443,10 @@ export const StreamsScreen = () => {
const streams = type === 'series' ? episodeStreams : groupedStreams; const streams = type === 'series' ? episodeStreams : groupedStreams;
const installedAddons = stremioService.getInstalledAddons(); const installedAddons = stremioService.getInstalledAddons();
// Remove test addon section
return Object.entries(streams) return Object.entries(streams)
.filter(([addonId]) => { .filter(([addonId]) => {
// Filter out test_addon and source_1 // Filter out source_1 and source_2
if (addonId === 'test_addon' || addonId === 'source_1') return false; return addonId !== 'source_1' && addonId !== 'source_2';
return selectedProvider === 'all' || selectedProvider === addonId;
}) })
.sort(([addonIdA], [addonIdB]) => { .sort(([addonIdA], [addonIdB]) => {
const indexA = installedAddons.findIndex(addon => addon.id === addonIdA); const indexA = installedAddons.findIndex(addon => addon.id === addonIdA);