add double click play to album detail

- add mediaPlayByIndex
- add index property to item list controls args
- add overrides to item list controls
This commit is contained in:
jeffvli
2025-11-22 22:27:45 -08:00
parent 0aee428aaf
commit 646eb4a3b0
15 changed files with 131 additions and 22 deletions
@@ -20,7 +20,9 @@ export const RowIndexColumn = (props: ItemTableListInnerColumn) => {
const { itemType } = props;
switch (itemType) {
case LibraryItem.PLAYLIST_SONG:
case LibraryItem.QUEUE_SONG:
case LibraryItem.SONG:
return <QueueSongRowIndexColumn {...props} />;
default:
return <DefaultRowIndexColumn {...props} />;
@@ -54,14 +56,18 @@ const DefaultRowIndexColumn = (props: ItemTableListInnerColumn) => {
className={clsx(styles.expand, 'hover-only')}
icon="arrowDownS"
iconProps={{ color: 'muted', size: 'md' }}
onClick={(e) =>
onClick={(e) => {
const item = data[rowIndex] as ItemListItem;
const rowId = internalState.extractRowId(item);
const index = rowId ? internalState.findItemIndex(rowId) : -1;
controls.onExpand?.({
event: e,
index,
internalState,
item: data[rowIndex] as ItemListItem,
item,
itemType,
})
}
});
}}
size="xs"
variant="subtle"
/>
@@ -78,7 +84,7 @@ const DefaultRowIndexColumn = (props: ItemTableListInnerColumn) => {
const QueueSongRowIndexColumn = (props: ItemTableListInnerColumn) => {
const status = usePlayerStatus();
const song = props.data[props.rowIndex] as QueueSong;
const isActive = props.activeRowId === song?._uniqueId;
const isActive = props.activeRowId === song?.id || props.activeRowId === song?._uniqueId;
let adjustedRowIndex =
props.adjustedRowIndexMap?.get(props.rowIndex) ??