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
@@ -16,6 +16,7 @@ interface UseDefaultItemListControlsArgs {
edge: 'bottom' | 'left' | 'right' | 'top' | null,
) => void;
onColumnResized?: (columnId: TableColumn, width: number) => void;
overrides?: Partial<ItemControls>;
}
const itemTypeMapping = {
@@ -32,7 +33,7 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
const player = usePlayer();
const navigate = useNavigate();
const { onColumnReordered, onColumnResized } = args || {};
const { onColumnReordered, onColumnResized, overrides } = args || {};
const controls: ItemControls = useMemo(() => {
return {
@@ -326,8 +327,10 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
player.setRating(item._serverId, [item.id], apiItemType, newRating);
},
...overrides,
};
}, [onColumnReordered, onColumnResized, navigate, player]);
}, [onColumnReordered, onColumnResized, overrides, navigate, player]);
return controls;
};
@@ -438,7 +438,9 @@ export const useItemListState = (
);
const getData = useCallback(() => {
return getDataFn ? getDataFn() : [];
const data = getDataFn ? getDataFn() : [];
// Filter out null/undefined values (e.g., group header rows)
return data.filter((d) => d != null);
}, [getDataFn]);
const findItemIndex = useCallback(