fix list select all hotkey (#2195)

This commit is contained in:
jeffvli
2026-07-05 21:01:24 -07:00
parent 2ad4c58dcd
commit 7b5df97fa0
17 changed files with 189 additions and 87 deletions
@@ -40,16 +40,23 @@ export const AlbumListInfiniteGrid = ({
const { pageKey } = useListContext();
const { dataVersion, getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: pageKey || ItemListKey.ALBUM,
itemsPerPage,
itemType: LibraryItem.ALBUM,
listCountQuery,
listQueryFn,
query,
serverId,
});
const {
dataVersion,
getItem,
getItemIndex,
getLoadedItems,
itemCount,
loadedItems,
onRangeChanged,
} = useItemListInfiniteLoader({
eventKey: pageKey || ItemListKey.ALBUM,
itemsPerPage,
itemType: LibraryItem.ALBUM,
listCountQuery,
listQueryFn,
query,
serverId,
});
const { handleOnScrollEnd, scrollOffset } = useItemListScrollPersist({
enabled: saveScrollOffset,
@@ -67,6 +74,7 @@ export const AlbumListInfiniteGrid = ({
gap={gap}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -46,7 +46,7 @@ export const AlbumListInfiniteTable = ({
const listQueryFn = api.controller.getAlbumList;
const { pageKey } = useListContext();
const { getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
const { getItem, getItemIndex, getLoadedItems, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: pageKey || ItemListKey.ALBUM,
itemsPerPage,
@@ -83,6 +83,7 @@ export const AlbumListInfiniteTable = ({
enableVerticalBorders={enableVerticalBorders}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -37,16 +37,23 @@ export const AlbumArtistListInfiniteGrid = ({
const listQueryFn = api.controller.getAlbumArtistList;
const { dataVersion, getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.ALBUM_ARTIST,
itemsPerPage,
itemType: LibraryItem.ALBUM_ARTIST,
listCountQuery,
listQueryFn,
query,
serverId,
});
const {
dataVersion,
getItem,
getItemIndex,
getLoadedItems,
itemCount,
loadedItems,
onRangeChanged,
} = useItemListInfiniteLoader({
eventKey: ItemListKey.ALBUM_ARTIST,
itemsPerPage,
itemType: LibraryItem.ALBUM_ARTIST,
listCountQuery,
listQueryFn,
query,
serverId,
});
const { handleOnScrollEnd, scrollOffset } = useItemListScrollPersist({
enabled: saveScrollOffset,
@@ -63,6 +70,7 @@ export const AlbumArtistListInfiniteGrid = ({
gap={gap}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -44,7 +44,7 @@ export const AlbumArtistListInfiniteTable = ({
const listQueryFn = api.controller.getAlbumArtistList;
const { getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
const { getItem, getItemIndex, getLoadedItems, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.ALBUM_ARTIST,
itemsPerPage,
@@ -82,6 +82,7 @@ export const AlbumArtistListInfiniteTable = ({
enableVerticalBorders={enableVerticalBorders}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -37,16 +37,23 @@ export const ArtistListInfiniteGrid = ({
const listQueryFn = api.controller.getArtistList;
const { dataVersion, getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.ARTIST,
itemsPerPage,
itemType: LibraryItem.ARTIST,
listCountQuery,
listQueryFn,
query,
serverId,
});
const {
dataVersion,
getItem,
getItemIndex,
getLoadedItems,
itemCount,
loadedItems,
onRangeChanged,
} = useItemListInfiniteLoader({
eventKey: ItemListKey.ARTIST,
itemsPerPage,
itemType: LibraryItem.ARTIST,
listCountQuery,
listQueryFn,
query,
serverId,
});
const { handleOnScrollEnd, scrollOffset } = useItemListScrollPersist({
enabled: saveScrollOffset,
@@ -63,6 +70,7 @@ export const ArtistListInfiniteGrid = ({
gap={gap}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -44,7 +44,7 @@ export const ArtistListInfiniteTable = ({
const listQueryFn = api.controller.getArtistList;
const { getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
const { getItem, getItemIndex, getLoadedItems, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.ARTIST,
itemsPerPage,
@@ -82,6 +82,7 @@ export const ArtistListInfiniteTable = ({
enableVerticalBorders={enableVerticalBorders}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -37,16 +37,23 @@ export const GenreListInfiniteGrid = ({
const listQueryFn = api.controller.getGenreList;
const { dataVersion, getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.GENRE,
itemsPerPage,
itemType: LibraryItem.GENRE,
listCountQuery,
listQueryFn,
query,
serverId,
});
const {
dataVersion,
getItem,
getItemIndex,
getLoadedItems,
itemCount,
loadedItems,
onRangeChanged,
} = useItemListInfiniteLoader({
eventKey: ItemListKey.GENRE,
itemsPerPage,
itemType: LibraryItem.GENRE,
listCountQuery,
listQueryFn,
query,
serverId,
});
const { handleOnScrollEnd, scrollOffset } = useItemListScrollPersist({
enabled: saveScrollOffset,
@@ -63,6 +70,7 @@ export const GenreListInfiniteGrid = ({
gap={gap}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -44,7 +44,7 @@ export const GenreListInfiniteTable = ({
const listQueryFn = api.controller.getGenreList;
const { getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
const { getItem, getItemIndex, getLoadedItems, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.GENRE,
itemsPerPage,
@@ -82,6 +82,7 @@ export const GenreListInfiniteTable = ({
enableVerticalBorders={enableVerticalBorders}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -37,16 +37,23 @@ export const PlaylistListInfiniteGrid = ({
const listQueryFn = api.controller.getPlaylistList;
const { dataVersion, getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.PLAYLIST,
itemsPerPage,
itemType: LibraryItem.PLAYLIST,
listCountQuery,
listQueryFn,
query,
serverId,
});
const {
dataVersion,
getItem,
getItemIndex,
getLoadedItems,
itemCount,
loadedItems,
onRangeChanged,
} = useItemListInfiniteLoader({
eventKey: ItemListKey.PLAYLIST,
itemsPerPage,
itemType: LibraryItem.PLAYLIST,
listCountQuery,
listQueryFn,
query,
serverId,
});
const { handleOnScrollEnd, scrollOffset } = useItemListScrollPersist({
enabled: saveScrollOffset,
@@ -63,6 +70,7 @@ export const PlaylistListInfiniteGrid = ({
gap={gap}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -44,7 +44,7 @@ export const PlaylistListInfiniteTable = ({
const listQueryFn = api.controller.getPlaylistList;
const { getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
const { getItem, getItemIndex, getLoadedItems, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: ItemListKey.PLAYLIST,
itemsPerPage,
@@ -82,6 +82,7 @@ export const PlaylistListInfiniteTable = ({
enableVerticalBorders={enableVerticalBorders}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -34,16 +34,23 @@ export const SongListInfiniteGrid = ({
const listQueryFn = api.controller.getSongList;
const { pageKey } = useListContext();
const { dataVersion, getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: pageKey || ItemListKey.SONG,
itemsPerPage,
itemType: LibraryItem.SONG,
listCountQuery,
listQueryFn,
query,
serverId,
});
const {
dataVersion,
getItem,
getItemIndex,
getLoadedItems,
itemCount,
loadedItems,
onRangeChanged,
} = useItemListInfiniteLoader({
eventKey: pageKey || ItemListKey.SONG,
itemsPerPage,
itemType: LibraryItem.SONG,
listCountQuery,
listQueryFn,
query,
serverId,
});
const { handleOnScrollEnd, scrollOffset } = useItemListScrollPersist({
enabled: saveScrollOffset,
@@ -60,6 +67,7 @@ export const SongListInfiniteGrid = ({
gap={gap}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',
@@ -42,7 +42,7 @@ export const SongListInfiniteTable = ({
const listQueryFn = api.controller.getSongList;
const { pageKey } = useListContext();
const { getItem, getItemIndex, itemCount, loadedItems, onRangeChanged } =
const { getItem, getItemIndex, getLoadedItems, itemCount, loadedItems, onRangeChanged } =
useItemListInfiniteLoader({
eventKey: pageKey || ItemListKey.SONG,
itemsPerPage,
@@ -83,6 +83,7 @@ export const SongListInfiniteTable = ({
enableVerticalBorders={enableVerticalBorders}
getItem={getItem}
getItemIndex={getItemIndex}
getLoadedItems={getLoadedItems}
initialTop={{
to: scrollOffset ?? 0,
type: 'offset',