reimplement playqueue list controls

This commit is contained in:
jeffvli
2025-11-13 18:48:46 -08:00
parent 498abf3c3d
commit 744780861f
6 changed files with 51 additions and 103 deletions
@@ -564,15 +564,6 @@ export const ItemGridList = ({
const imperativeHandle: ItemListHandle = useMemo(() => {
return {
clearExpanded: () => {
internalState.clearExpanded();
},
clearSelected: () => {
internalState.clearSelected();
},
getItem: (index: number) => data[index],
getItemCount: () => data.length,
getItems: () => data,
internalState,
scrollToIndex: (index: number) => {
scrollToIndex(index);
@@ -581,7 +572,7 @@ export const ItemGridList = ({
scrollToOffset(offset);
},
};
}, [data, internalState, scrollToIndex, scrollToOffset]);
}, [internalState, scrollToIndex, scrollToOffset]);
useEffect(() => {
handleRef.current = imperativeHandle;
@@ -1276,15 +1276,6 @@ export const ItemTableList = ({
const imperativeHandle: ItemListHandle = useMemo(() => {
return {
clearExpanded: () => {
internalState.clearExpanded();
},
clearSelected: () => {
internalState.clearSelected();
},
getItem: (index: number) => (enableHeader ? data[index - 1] : data[index]),
getItemCount: () => (enableHeader ? data.length : data.length),
getItems: () => data,
internalState,
scrollToIndex: (index: number) => {
scrollToTableIndex(enableHeader ? index + 1 : index);
@@ -1293,7 +1284,7 @@ export const ItemTableList = ({
scrollToTableOffset(offset);
},
};
}, [data, enableHeader, internalState, scrollToTableIndex, scrollToTableOffset]);
}, [enableHeader, internalState, scrollToTableIndex, scrollToTableOffset]);
useImperativeHandle(ref, () => imperativeHandle);
@@ -53,11 +53,6 @@ export interface ItemListGridComponentProps<TQuery> extends ItemListComponentPro
}
export interface ItemListHandle {
clearExpanded: () => void;
clearSelected: () => void;
getItem: (index: number) => unknown;
getItemCount: () => number;
getItems: () => unknown[];
internalState: ItemListStateActions;
scrollToIndex: (index: number, options?: { behavior?: 'auto' | 'smooth' }) => void;
scrollToOffset: (offset: number, options?: { behavior?: 'auto' | 'smooth' }) => void;