From eb1443a45ba9bb99a1389e696fba7f4ae5794642 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Mon, 17 Nov 2025 17:24:10 -0800 Subject: [PATCH] handle non-list items contextmenu in controls --- src/renderer/components/item-card/item-card.tsx | 9 ++++++--- .../components/item-list/helpers/item-list-controls.ts | 10 +++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/renderer/components/item-card/item-card.tsx b/src/renderer/components/item-card/item-card.tsx index b5ec28eae..da130f8ca 100644 --- a/src/renderer/components/item-card/item-card.tsx +++ b/src/renderer/components/item-card/item-card.tsx @@ -183,11 +183,12 @@ const CompactItemCard = ({ }; const handleContextMenu = (e: React.MouseEvent) => { - if (!data || !controls || !internalState) { + if (!data || !controls) { return; } e.preventDefault(); + controls.onMore?.({ event: e, internalState, @@ -337,11 +338,12 @@ const DefaultItemCard = ({ }; const handleContextMenu = (e: React.MouseEvent) => { - if (!data || !controls || !internalState) { + if (!data || !controls) { return; } e.preventDefault(); + controls.onMore?.({ event: e, internalState, @@ -536,11 +538,12 @@ const PosterItemCard = ({ }; const handleContextMenu = (e: React.MouseEvent) => { - if (!data || !controls || !internalState) { + if (!data || !controls) { return; } e.preventDefault(); + controls.onMore?.({ event: e, internalState, diff --git a/src/renderer/components/item-list/helpers/item-list-controls.ts b/src/renderer/components/item-list/helpers/item-list-controls.ts index eaf66f981..f267e7f99 100644 --- a/src/renderer/components/item-list/helpers/item-list-controls.ts +++ b/src/renderer/components/item-list/helpers/item-list-controls.ts @@ -232,10 +232,18 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs }, onMore: ({ event, internalState, item, itemType }: DefaultItemControlProps) => { - if (!item || !internalState || !event) { + if (!item || !event) { return; } + // If no internalState, call ContextMenuController directly + if (!internalState) { + return ContextMenuController.call({ + cmd: { items: [item] as any[], type: itemType as any }, + event, + }); + } + const rowId = internalState.extractRowId(item); if (!rowId) return;