optimize item list controls

This commit is contained in:
jeffvli
2026-04-05 18:21:28 -07:00
parent 356f5487b0
commit 1b2a6dfc1f
@@ -40,6 +40,13 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
const setFavorite = useSetFavorite(); const setFavorite = useSetFavorite();
const setRating = useSetRating(); const setRating = useSetRating();
const playerRef = useRef(player);
const setFavoriteRef = useRef(setFavorite);
const setRatingRef = useRef(setRating);
playerRef.current = player;
setFavoriteRef.current = setFavorite;
setRatingRef.current = setRating;
useEffect(() => { useEffect(() => {
navigateRef.current = navigate; navigateRef.current = navigate;
}, [navigate]); }, [navigate]);
@@ -266,14 +273,14 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
return; return;
} }
player.addToQueueByData(songsToAdd, playType, item.id); playerRef.current.addToQueueByData(songsToAdd, playType, item.id);
return; return;
} }
if (itemType === LibraryItem.QUEUE_SONG) { if (itemType === LibraryItem.QUEUE_SONG) {
const queueSong = item as QueueSong; const queueSong = item as QueueSong;
if (queueSong._uniqueId) { if (queueSong._uniqueId) {
player.mediaPlay(queueSong._uniqueId); playerRef.current.mediaPlay(queueSong._uniqueId);
} }
} }
}, },
@@ -316,7 +323,7 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
return; return;
} }
setFavorite(item._serverId, [item.id], apiItemType, favorite); setFavoriteRef.current(item._serverId, [item.id], apiItemType, favorite);
}, },
onMore: ({ event, internalState, item, itemType }: DefaultItemControlProps) => { onMore: ({ event, internalState, item, itemType }: DefaultItemControlProps) => {
@@ -394,7 +401,7 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
return; return;
} }
player.addToQueueByFetch(item._serverId, [item.id], itemType, playType); playerRef.current.addToQueueByFetch(item._serverId, [item.id], itemType, playType);
}, },
onRating: ({ onRating: ({
@@ -420,20 +427,12 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
newRating = 0; newRating = 0;
} }
setRating(item._serverId, [item.id], apiItemType, newRating); setRatingRef.current(item._serverId, [item.id], apiItemType, newRating);
}, },
...overrides, ...overrides,
}; };
}, [ }, [enableMultiSelect, overrides, onColumnReordered, onColumnResized]);
enableMultiSelect,
overrides,
onColumnReordered,
onColumnResized,
player,
setFavorite,
setRating,
]);
return controls; return controls;
}; };