Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
cbbfc1a798
commit
577ae320f5
@ -12,21 +12,38 @@ export const useFavorites = () => {
|
||||
const allFavoritesItems = useAppSelector(selectFavoritesArray);
|
||||
const { addToQueue, toggleFavorite } = useSongOperations();
|
||||
const { showSuccess, showError } = useToast();
|
||||
const { filterDisabledSongs, isSongDisabled, addDisabledSong, removeDisabledSong } = useDisabledSongs();
|
||||
const { disabledSongPaths, isSongDisabled, addDisabledSong, removeDisabledSong, loading: disabledSongsLoading } = useDisabledSongs();
|
||||
|
||||
const [currentPage, setCurrentPage] = useState(1);
|
||||
|
||||
// Filter out disabled songs and paginate
|
||||
const favoritesItems = useMemo(() => {
|
||||
const filteredItems = filterDisabledSongs(allFavoritesItems);
|
||||
// Don't return any results if disabled songs are still loading
|
||||
if (disabledSongsLoading) {
|
||||
debugLog('useFavorites - disabled songs still loading, returning empty array');
|
||||
return [];
|
||||
}
|
||||
|
||||
// Filter out disabled songs first
|
||||
const filteredItems = allFavoritesItems.filter(song => !disabledSongPaths.has(song.path));
|
||||
const endIndex = currentPage * ITEMS_PER_PAGE;
|
||||
|
||||
debugLog('useFavorites - filtering favorites:', {
|
||||
totalFavorites: allFavoritesItems.length,
|
||||
afterDisabledFilter: filteredItems.length,
|
||||
currentPage,
|
||||
endIndex
|
||||
});
|
||||
|
||||
return filteredItems.slice(0, endIndex);
|
||||
}, [allFavoritesItems, currentPage, filterDisabledSongs]);
|
||||
}, [allFavoritesItems, currentPage, disabledSongPaths, disabledSongsLoading]);
|
||||
|
||||
const hasMore = useMemo(() => {
|
||||
const filteredItems = filterDisabledSongs(allFavoritesItems);
|
||||
if (disabledSongsLoading) return false;
|
||||
|
||||
const filteredItems = allFavoritesItems.filter(song => !disabledSongPaths.has(song.path));
|
||||
return filteredItems.length > ITEMS_PER_PAGE && favoritesItems.length < filteredItems.length;
|
||||
}, [favoritesItems.length, allFavoritesItems.length, filterDisabledSongs]);
|
||||
}, [favoritesItems.length, allFavoritesItems, disabledSongPaths, disabledSongsLoading]);
|
||||
|
||||
const loadMore = useCallback(() => {
|
||||
debugLog('useFavorites - loadMore called:', { hasMore, currentPage, allFavoritesItemsLength: allFavoritesItems.length });
|
||||
|
||||
@ -12,21 +12,38 @@ export const useHistory = () => {
|
||||
const allHistoryItems = useAppSelector(selectHistoryArray);
|
||||
const { addToQueue, toggleFavorite } = useSongOperations();
|
||||
const { showSuccess, showError } = useToast();
|
||||
const { filterDisabledSongs, isSongDisabled, addDisabledSong, removeDisabledSong } = useDisabledSongs();
|
||||
const { disabledSongPaths, isSongDisabled, addDisabledSong, removeDisabledSong, loading: disabledSongsLoading } = useDisabledSongs();
|
||||
|
||||
const [currentPage, setCurrentPage] = useState(1);
|
||||
|
||||
// Filter out disabled songs and paginate
|
||||
const historyItems = useMemo(() => {
|
||||
const filteredItems = filterDisabledSongs(allHistoryItems);
|
||||
// Don't return any results if disabled songs are still loading
|
||||
if (disabledSongsLoading) {
|
||||
debugLog('useHistory - disabled songs still loading, returning empty array');
|
||||
return [];
|
||||
}
|
||||
|
||||
// Filter out disabled songs first
|
||||
const filteredItems = allHistoryItems.filter(song => !disabledSongPaths.has(song.path));
|
||||
const endIndex = currentPage * ITEMS_PER_PAGE;
|
||||
|
||||
debugLog('useHistory - filtering history:', {
|
||||
totalHistory: allHistoryItems.length,
|
||||
afterDisabledFilter: filteredItems.length,
|
||||
currentPage,
|
||||
endIndex
|
||||
});
|
||||
|
||||
return filteredItems.slice(0, endIndex);
|
||||
}, [allHistoryItems, currentPage, filterDisabledSongs]);
|
||||
}, [allHistoryItems, currentPage, disabledSongPaths, disabledSongsLoading]);
|
||||
|
||||
const hasMore = useMemo(() => {
|
||||
const filteredItems = filterDisabledSongs(allHistoryItems);
|
||||
if (disabledSongsLoading) return false;
|
||||
|
||||
const filteredItems = allHistoryItems.filter(song => !disabledSongPaths.has(song.path));
|
||||
return filteredItems.length > ITEMS_PER_PAGE && historyItems.length < filteredItems.length;
|
||||
}, [historyItems.length, allHistoryItems.length, filterDisabledSongs]);
|
||||
}, [historyItems.length, allHistoryItems, disabledSongPaths, disabledSongsLoading]);
|
||||
|
||||
const loadMore = useCallback(() => {
|
||||
debugLog('useHistory - loadMore called:', { hasMore, currentPage, allHistoryItemsLength: allHistoryItems.length });
|
||||
|
||||
@ -12,21 +12,38 @@ export const useNewSongs = () => {
|
||||
const allNewSongsItems = useAppSelector(selectNewSongsArray);
|
||||
const { addToQueue, toggleFavorite } = useSongOperations();
|
||||
const { showSuccess, showError } = useToast();
|
||||
const { filterDisabledSongs, isSongDisabled, addDisabledSong, removeDisabledSong } = useDisabledSongs();
|
||||
const { disabledSongPaths, isSongDisabled, addDisabledSong, removeDisabledSong, loading: disabledSongsLoading } = useDisabledSongs();
|
||||
|
||||
const [currentPage, setCurrentPage] = useState(1);
|
||||
|
||||
// Filter out disabled songs and paginate
|
||||
const newSongsItems = useMemo(() => {
|
||||
const filteredItems = filterDisabledSongs(allNewSongsItems);
|
||||
// Don't return any results if disabled songs are still loading
|
||||
if (disabledSongsLoading) {
|
||||
debugLog('useNewSongs - disabled songs still loading, returning empty array');
|
||||
return [];
|
||||
}
|
||||
|
||||
// Filter out disabled songs first
|
||||
const filteredItems = allNewSongsItems.filter(song => !disabledSongPaths.has(song.path));
|
||||
const endIndex = currentPage * ITEMS_PER_PAGE;
|
||||
|
||||
debugLog('useNewSongs - filtering new songs:', {
|
||||
totalNewSongs: allNewSongsItems.length,
|
||||
afterDisabledFilter: filteredItems.length,
|
||||
currentPage,
|
||||
endIndex
|
||||
});
|
||||
|
||||
return filteredItems.slice(0, endIndex);
|
||||
}, [allNewSongsItems, currentPage, filterDisabledSongs]);
|
||||
}, [allNewSongsItems, currentPage, disabledSongPaths, disabledSongsLoading]);
|
||||
|
||||
const hasMore = useMemo(() => {
|
||||
const filteredItems = filterDisabledSongs(allNewSongsItems);
|
||||
if (disabledSongsLoading) return false;
|
||||
|
||||
const filteredItems = allNewSongsItems.filter(song => !disabledSongPaths.has(song.path));
|
||||
return filteredItems.length > ITEMS_PER_PAGE && newSongsItems.length < filteredItems.length;
|
||||
}, [newSongsItems.length, allNewSongsItems.length, filterDisabledSongs]);
|
||||
}, [newSongsItems.length, allNewSongsItems, disabledSongPaths, disabledSongsLoading]);
|
||||
|
||||
const loadMore = useCallback(() => {
|
||||
debugLog('useNewSongs - loadMore called:', { hasMore, currentPage, allNewSongsItemsLength: allNewSongsItems.length });
|
||||
|
||||
Loading…
Reference in New Issue
Block a user