fix(shortcut): h

This commit is contained in:
zhangheng
2026-04-16 15:39:17 +08:00
parent 1f9436864b
commit 8b89c37a1a
2 changed files with 75 additions and 1 deletions

View File

@@ -1594,6 +1594,50 @@ const LabelPage = ({
})
}, [activeImage, labelData])
const handleToggleHideSelectionOrAll = useCallback(() => {
const selectedIds =
useObjectStore.getState().selectedPath[activeImage] || []
if (!selectedIds.length) {
handleToggleHideAllObjects()
return
}
const activeImageLabel = labelData.get(activeImage)
if (!activeImageLabel?.size) {
return
}
const selectedIdSet = new Set(selectedIds)
const selectedObjects: Array<{
operationId: string
objectId: number
}> = []
activeImageLabel.forEach((paths, operationId) => {
paths.forEach(([objectId]) => {
if (!selectedIdSet.has(objectId)) return
selectedObjects.push({
operationId,
objectId,
})
})
})
if (!selectedObjects.length) {
return
}
const { pathStatus } = useObjectStore.getState()
const areAllSelectedObjectsHidden = selectedObjects.every(
({ objectId }) => pathStatus[activeImage + objectId]?.HIDE ?? false
)
const nextHide = !areAllSelectedObjectsHidden
selectedObjects.forEach(({ operationId, objectId }) => {
toggleObjectHideByShortcut(activeImage, operationId, objectId, nextHide)
})
}, [activeImage, handleToggleHideAllObjects, labelData])
const rerenderActiveImageByLabel = useCallback(
(
imageId: string,
@@ -2185,7 +2229,7 @@ const LabelPage = ({
if (!e.ctrlKey && !e.metaKey && !e.altKey && lowerKey === "h") {
e.preventDefault()
handleToggleHideAllObjects()
handleToggleHideSelectionOrAll()
return
}
@@ -2487,6 +2531,7 @@ const LabelPage = ({
focusInput,
getOperationSchema,
handleToggleHideAllObjects,
handleToggleHideSelectionOrAll,
handleMergeSelectedObjects,
handleContinueSelectedPolygon,
handleShortcut,