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 allFavoritesItems = useAppSelector(selectFavoritesArray);
|
||||||
const { addToQueue, toggleFavorite } = useSongOperations();
|
const { addToQueue, toggleFavorite } = useSongOperations();
|
||||||
const { showSuccess, showError } = useToast();
|
const { showSuccess, showError } = useToast();
|
||||||
const { filterDisabledSongs, isSongDisabled, addDisabledSong, removeDisabledSong } = useDisabledSongs();
|
const { disabledSongPaths, isSongDisabled, addDisabledSong, removeDisabledSong, loading: disabledSongsLoading } = useDisabledSongs();
|
||||||
|
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
|
|
||||||
// Filter out disabled songs and paginate
|
// Filter out disabled songs and paginate
|
||||||
const favoritesItems = useMemo(() => {
|
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;
|
const endIndex = currentPage * ITEMS_PER_PAGE;
|
||||||
|
|
||||||
|
debugLog('useFavorites - filtering favorites:', {
|
||||||
|
totalFavorites: allFavoritesItems.length,
|
||||||
|
afterDisabledFilter: filteredItems.length,
|
||||||
|
currentPage,
|
||||||
|
endIndex
|
||||||
|
});
|
||||||
|
|
||||||
return filteredItems.slice(0, endIndex);
|
return filteredItems.slice(0, endIndex);
|
||||||
}, [allFavoritesItems, currentPage, filterDisabledSongs]);
|
}, [allFavoritesItems, currentPage, disabledSongPaths, disabledSongsLoading]);
|
||||||
|
|
||||||
const hasMore = useMemo(() => {
|
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;
|
return filteredItems.length > ITEMS_PER_PAGE && favoritesItems.length < filteredItems.length;
|
||||||
}, [favoritesItems.length, allFavoritesItems.length, filterDisabledSongs]);
|
}, [favoritesItems.length, allFavoritesItems, disabledSongPaths, disabledSongsLoading]);
|
||||||
|
|
||||||
const loadMore = useCallback(() => {
|
const loadMore = useCallback(() => {
|
||||||
debugLog('useFavorites - loadMore called:', { hasMore, currentPage, allFavoritesItemsLength: allFavoritesItems.length });
|
debugLog('useFavorites - loadMore called:', { hasMore, currentPage, allFavoritesItemsLength: allFavoritesItems.length });
|
||||||
|
|||||||
@ -12,21 +12,38 @@ export const useHistory = () => {
|
|||||||
const allHistoryItems = useAppSelector(selectHistoryArray);
|
const allHistoryItems = useAppSelector(selectHistoryArray);
|
||||||
const { addToQueue, toggleFavorite } = useSongOperations();
|
const { addToQueue, toggleFavorite } = useSongOperations();
|
||||||
const { showSuccess, showError } = useToast();
|
const { showSuccess, showError } = useToast();
|
||||||
const { filterDisabledSongs, isSongDisabled, addDisabledSong, removeDisabledSong } = useDisabledSongs();
|
const { disabledSongPaths, isSongDisabled, addDisabledSong, removeDisabledSong, loading: disabledSongsLoading } = useDisabledSongs();
|
||||||
|
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
|
|
||||||
// Filter out disabled songs and paginate
|
// Filter out disabled songs and paginate
|
||||||
const historyItems = useMemo(() => {
|
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;
|
const endIndex = currentPage * ITEMS_PER_PAGE;
|
||||||
|
|
||||||
|
debugLog('useHistory - filtering history:', {
|
||||||
|
totalHistory: allHistoryItems.length,
|
||||||
|
afterDisabledFilter: filteredItems.length,
|
||||||
|
currentPage,
|
||||||
|
endIndex
|
||||||
|
});
|
||||||
|
|
||||||
return filteredItems.slice(0, endIndex);
|
return filteredItems.slice(0, endIndex);
|
||||||
}, [allHistoryItems, currentPage, filterDisabledSongs]);
|
}, [allHistoryItems, currentPage, disabledSongPaths, disabledSongsLoading]);
|
||||||
|
|
||||||
const hasMore = useMemo(() => {
|
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;
|
return filteredItems.length > ITEMS_PER_PAGE && historyItems.length < filteredItems.length;
|
||||||
}, [historyItems.length, allHistoryItems.length, filterDisabledSongs]);
|
}, [historyItems.length, allHistoryItems, disabledSongPaths, disabledSongsLoading]);
|
||||||
|
|
||||||
const loadMore = useCallback(() => {
|
const loadMore = useCallback(() => {
|
||||||
debugLog('useHistory - loadMore called:', { hasMore, currentPage, allHistoryItemsLength: allHistoryItems.length });
|
debugLog('useHistory - loadMore called:', { hasMore, currentPage, allHistoryItemsLength: allHistoryItems.length });
|
||||||
|
|||||||
@ -12,21 +12,38 @@ export const useNewSongs = () => {
|
|||||||
const allNewSongsItems = useAppSelector(selectNewSongsArray);
|
const allNewSongsItems = useAppSelector(selectNewSongsArray);
|
||||||
const { addToQueue, toggleFavorite } = useSongOperations();
|
const { addToQueue, toggleFavorite } = useSongOperations();
|
||||||
const { showSuccess, showError } = useToast();
|
const { showSuccess, showError } = useToast();
|
||||||
const { filterDisabledSongs, isSongDisabled, addDisabledSong, removeDisabledSong } = useDisabledSongs();
|
const { disabledSongPaths, isSongDisabled, addDisabledSong, removeDisabledSong, loading: disabledSongsLoading } = useDisabledSongs();
|
||||||
|
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
|
|
||||||
// Filter out disabled songs and paginate
|
// Filter out disabled songs and paginate
|
||||||
const newSongsItems = useMemo(() => {
|
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;
|
const endIndex = currentPage * ITEMS_PER_PAGE;
|
||||||
|
|
||||||
|
debugLog('useNewSongs - filtering new songs:', {
|
||||||
|
totalNewSongs: allNewSongsItems.length,
|
||||||
|
afterDisabledFilter: filteredItems.length,
|
||||||
|
currentPage,
|
||||||
|
endIndex
|
||||||
|
});
|
||||||
|
|
||||||
return filteredItems.slice(0, endIndex);
|
return filteredItems.slice(0, endIndex);
|
||||||
}, [allNewSongsItems, currentPage, filterDisabledSongs]);
|
}, [allNewSongsItems, currentPage, disabledSongPaths, disabledSongsLoading]);
|
||||||
|
|
||||||
const hasMore = useMemo(() => {
|
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;
|
return filteredItems.length > ITEMS_PER_PAGE && newSongsItems.length < filteredItems.length;
|
||||||
}, [newSongsItems.length, allNewSongsItems.length, filterDisabledSongs]);
|
}, [newSongsItems.length, allNewSongsItems, disabledSongPaths, disabledSongsLoading]);
|
||||||
|
|
||||||
const loadMore = useCallback(() => {
|
const loadMore = useCallback(() => {
|
||||||
debugLog('useNewSongs - loadMore called:', { hasMore, currentPage, allNewSongsItemsLength: allNewSongsItems.length });
|
debugLog('useNewSongs - loadMore called:', { hasMore, currentPage, allNewSongsItemsLength: allNewSongsItems.length });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user