mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-17 06:00:20 +02:00
fix selection state on ItemGridList when single select mode
This commit is contained in:
@@ -12,6 +12,7 @@ import { LibraryItem, QueueSong, Song } from '/@/shared/types/domain-types';
|
||||
import { Play, TableColumn } from '/@/shared/types/types';
|
||||
|
||||
interface UseDefaultItemListControlsArgs {
|
||||
enableMultiSelect?: boolean;
|
||||
onColumnReordered?: (
|
||||
columnIdFrom: TableColumn,
|
||||
columnIdTo: TableColumn,
|
||||
@@ -42,7 +43,7 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
|
||||
navigateRef.current = navigate;
|
||||
}, [navigate]);
|
||||
|
||||
const { onColumnReordered, onColumnResized, overrides } = args || {};
|
||||
const { enableMultiSelect = true, onColumnReordered, onColumnResized, overrides } = args || {};
|
||||
|
||||
const controls: ItemControls = useMemo(() => {
|
||||
return {
|
||||
@@ -333,6 +334,13 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
|
||||
|
||||
if (!rowId) return;
|
||||
|
||||
if (!enableMultiSelect) {
|
||||
return ContextMenuController.call({
|
||||
cmd: { items: [item] as any[], type: actualItemType as any },
|
||||
event,
|
||||
});
|
||||
}
|
||||
|
||||
// If none selected, select this item
|
||||
if (internalState.getSelected().length === 0) {
|
||||
internalState.setSelected([item]);
|
||||
@@ -407,7 +415,15 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
|
||||
|
||||
...overrides,
|
||||
};
|
||||
}, [overrides, onColumnReordered, onColumnResized, player, setFavorite, setRating]);
|
||||
}, [
|
||||
enableMultiSelect,
|
||||
overrides,
|
||||
onColumnReordered,
|
||||
onColumnResized,
|
||||
player,
|
||||
setFavorite,
|
||||
setRating,
|
||||
]);
|
||||
|
||||
return controls;
|
||||
};
|
||||
|
||||
@@ -511,7 +511,10 @@ const BaseItemGridList = ({
|
||||
});
|
||||
}, [containerWidth, resolvedItemCount, throttledSetTableMeta, containerRef]);
|
||||
|
||||
const controls = useDefaultItemListControls({ overrides: overrideControls });
|
||||
const controls = useDefaultItemListControls({
|
||||
enableMultiSelect,
|
||||
overrides: overrideControls,
|
||||
});
|
||||
|
||||
const scrollToIndex = useCallback(
|
||||
(
|
||||
@@ -875,6 +878,7 @@ const ListComponent = memo((props: ListChildComponentProps<GridItemProps>) => {
|
||||
data={item}
|
||||
enableDrag={enableDrag}
|
||||
enableExpansion={props.data.enableExpansion}
|
||||
enableMultiSelect={enableMultiSelect}
|
||||
imageAsLink={!enableMultiSelect}
|
||||
internalState={props.data.internalState}
|
||||
itemType={itemType}
|
||||
|
||||
Reference in New Issue
Block a user