From 4ef2956eb1e3833851e313a0320426014d6a2ada Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 27 Nov 2025 14:21:20 -0800 Subject: [PATCH] add delete hotkey to playqueue --- .../now-playing/components/play-queue.tsx | 25 ++++++++++++++++++- .../player/context/player-context.tsx | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/renderer/features/now-playing/components/play-queue.tsx b/src/renderer/features/now-playing/components/play-queue.tsx index 1558a1412..d82f51f77 100644 --- a/src/renderer/features/now-playing/components/play-queue.tsx +++ b/src/renderer/features/now-playing/components/play-queue.tsx @@ -26,6 +26,8 @@ import { Flex } from '/@/shared/components/flex/flex'; import { LoadingOverlay } from '/@/shared/components/loading-overlay/loading-overlay'; import { Text } from '/@/shared/components/text/text'; import { useDebouncedValue } from '/@/shared/hooks/use-debounced-value'; +import { useFocusWithin } from '/@/shared/hooks/use-focus-within'; +import { useHotkeys } from '/@/shared/hooks/use-hotkeys'; import { useMergedRef } from '/@/shared/hooks/use-merged-ref'; import { LibraryItem, QueueSong, Song } from '/@/shared/types/domain-types'; import { DragTarget } from '/@/shared/types/drag-and-drop'; @@ -140,8 +142,29 @@ export const PlayQueue = forwardRef(({ listKey, sear const currentSong = usePlayerSong(); const currentSongUniqueId = currentSong?._uniqueId; + const { focused, ref: containerFocusRef } = useFocusWithin(); + const player = usePlayer(); + + useHotkeys([ + [ + 'delete', + () => { + if (focused) { + const selectedItems = + tableRef.current?.internalState.getSelected() as QueueSong[]; + + if (!selectedItems || selectedItems.length === 0) { + return; + } + + player.clearSelected(selectedItems); + } + }, + ], + ]); + return ( -
+
{ (items: QueueSong[]) => { logFn.debug(logMsg[LogCategory.PLAYER].clearSelected, { category: LogCategory.PLAYER, - meta: { items }, + meta: { items: items.length }, }); storeActions.clearSelected(items);