add draggable table column reorder

This commit is contained in:
jeffvli
2025-11-14 11:18:27 -08:00
parent 4c92da9ab5
commit a03ea3b4d8
17 changed files with 340 additions and 3 deletions
@@ -3,6 +3,7 @@ import { forwardRef } from 'react';
import { api } from '/@/renderer/api';
import { useItemListInfiniteLoader } from '/@/renderer/components/item-list/helpers/item-list-infinite-loader';
import { useItemListColumnReorder } from '/@/renderer/components/item-list/helpers/use-item-list-column-reorder';
import { useItemListColumnResize } from '/@/renderer/components/item-list/helpers/use-item-list-column-resize';
import { useItemListScrollPersist } from '/@/renderer/components/item-list/helpers/use-item-list-scroll-persist';
import { ItemTableList } from '/@/renderer/components/item-list/item-table-list/item-table-list';
@@ -62,6 +63,10 @@ export const AlbumArtistListInfiniteTable = forwardRef<any, AlbumArtistListInfin
enabled: saveScrollOffset,
});
const { handleColumnReordered } = useItemListColumnReorder({
itemListKey: ItemListKey.ALBUM_ARTIST,
});
const { handleColumnResized } = useItemListColumnResize({
itemListKey: ItemListKey.ALBUM_ARTIST,
});
@@ -83,6 +88,7 @@ export const AlbumArtistListInfiniteTable = forwardRef<any, AlbumArtistListInfin
type: 'offset',
}}
itemType={LibraryItem.ALBUM_ARTIST}
onColumnReordered={handleColumnReordered}
onColumnResized={handleColumnResized}
onRangeChanged={onRangeChanged}
onScrollEnd={handleOnScrollEnd}
@@ -3,6 +3,7 @@ import { forwardRef } from 'react';
import { api } from '/@/renderer/api';
import { useItemListPaginatedLoader } from '/@/renderer/components/item-list/helpers/item-list-paginated-loader';
import { useItemListColumnReorder } from '/@/renderer/components/item-list/helpers/use-item-list-column-reorder';
import { useItemListColumnResize } from '/@/renderer/components/item-list/helpers/use-item-list-column-resize';
import { useItemListScrollPersist } from '/@/renderer/components/item-list/helpers/use-item-list-scroll-persist';
import { ItemListWithPagination } from '/@/renderer/components/item-list/item-list-pagination/item-list-pagination';
@@ -66,6 +67,10 @@ export const AlbumArtistListPaginatedTable = forwardRef<any, AlbumArtistListPagi
enabled: saveScrollOffset,
});
const { handleColumnReordered } = useItemListColumnReorder({
itemListKey: ItemListKey.ALBUM_ARTIST,
});
const { handleColumnResized } = useItemListColumnResize({
itemListKey: ItemListKey.ALBUM_ARTIST,
});
@@ -95,6 +100,7 @@ export const AlbumArtistListPaginatedTable = forwardRef<any, AlbumArtistListPagi
type: 'offset',
}}
itemType={LibraryItem.ALBUM_ARTIST}
onColumnReordered={handleColumnReordered}
onColumnResized={handleColumnResized}
onScrollEnd={handleOnScrollEnd}
ref={ref}
@@ -3,6 +3,7 @@ import { forwardRef } from 'react';
import { api } from '/@/renderer/api';
import { useItemListInfiniteLoader } from '/@/renderer/components/item-list/helpers/item-list-infinite-loader';
import { useItemListColumnReorder } from '/@/renderer/components/item-list/helpers/use-item-list-column-reorder';
import { useItemListColumnResize } from '/@/renderer/components/item-list/helpers/use-item-list-column-resize';
import { useItemListScrollPersist } from '/@/renderer/components/item-list/helpers/use-item-list-scroll-persist';
import { ItemTableList } from '/@/renderer/components/item-list/item-table-list/item-table-list';
@@ -61,6 +62,10 @@ export const ArtistListInfiniteTable = forwardRef<any, ArtistListInfiniteTablePr
enabled: saveScrollOffset,
});
const { handleColumnReordered } = useItemListColumnReorder({
itemListKey: ItemListKey.ARTIST,
});
const { handleColumnResized } = useItemListColumnResize({
itemListKey: ItemListKey.ARTIST,
});
@@ -82,6 +87,7 @@ export const ArtistListInfiniteTable = forwardRef<any, ArtistListInfiniteTablePr
type: 'offset',
}}
itemType={LibraryItem.ARTIST}
onColumnReordered={handleColumnReordered}
onColumnResized={handleColumnResized}
onRangeChanged={onRangeChanged}
onScrollEnd={handleOnScrollEnd}
@@ -3,6 +3,7 @@ import { forwardRef } from 'react';
import { api } from '/@/renderer/api';
import { useItemListPaginatedLoader } from '/@/renderer/components/item-list/helpers/item-list-paginated-loader';
import { useItemListColumnReorder } from '/@/renderer/components/item-list/helpers/use-item-list-column-reorder';
import { useItemListColumnResize } from '/@/renderer/components/item-list/helpers/use-item-list-column-resize';
import { useItemListScrollPersist } from '/@/renderer/components/item-list/helpers/use-item-list-scroll-persist';
import { ItemTableList } from '/@/renderer/components/item-list/item-table-list/item-table-list';
@@ -65,6 +66,10 @@ export const ArtistListPaginatedTable = forwardRef<any, ArtistListPaginatedTable
enabled: saveScrollOffset,
});
const { handleColumnReordered } = useItemListColumnReorder({
itemListKey: ItemListKey.ARTIST,
});
const { handleColumnResized } = useItemListColumnResize({
itemListKey: ItemListKey.ARTIST,
});
@@ -94,6 +99,7 @@ export const ArtistListPaginatedTable = forwardRef<any, ArtistListPaginatedTable
type: 'offset',
}}
itemType={LibraryItem.ARTIST}
onColumnReordered={handleColumnReordered}
onColumnResized={handleColumnResized}
onScrollEnd={handleOnScrollEnd}
ref={ref}