feat(hotkeys): h

This commit is contained in:
zhangheng
2026-04-11 16:55:13 +08:00
parent e8dc6abb97
commit 3399f08137

View File

@@ -1512,27 +1512,37 @@ const LabelPage = ({
]
)
const handleToggleHideSelectedObject = useCallback(() => {
const selectedContext = resolveSelectedObjectContext()
if (!selectedContext) {
notifications.show({
color: "yellow",
message: "请先选中单个对象",
})
return
}
const handleToggleHideAllObjects = useCallback(() => {
const activeImageLabel = labelData.get(activeImage)
if (!activeImageLabel?.size) return
const currentHideStatus =
useObjectStore.getState().pathStatus[
selectedContext.imageId + selectedContext.objectId
]?.HIDE || false
toggleObjectHideByShortcut(
selectedContext.imageId,
selectedContext.operationId,
selectedContext.objectId,
!currentHideStatus
const activeImageOperations = Array.from(activeImageLabel.keys())
const totalObjectCount = activeImageOperations.reduce(
(count, operationId) => {
return count + (activeImageLabel.get(operationId)?.length || 0)
},
0
)
}, [resolveSelectedObjectContext])
if (!totalObjectCount) return
const pathStatus = useObjectStore.getState().pathStatus
const areAllObjectsHidden = activeImageOperations.every((operationId) => {
const operationChildren = activeImageLabel.get(operationId) || []
return operationChildren.every(
([objectId]) => pathStatus[activeImage + objectId]?.HIDE ?? false
)
})
const nextHide = !areAllObjectsHidden
const { updateOperationStatus } = useObjectStore.getState()
activeImageOperations.forEach((operationId) => {
updateOperationStatus(activeImage + operationId, "HIDE", nextHide)
activeImageLabel.get(operationId)?.forEach(([objectId]) => {
toggleObjectHideByShortcut(activeImage, operationId, objectId, nextHide)
})
})
}, [activeImage, labelData])
const rerenderActiveImageByLabel = useCallback(
(
@@ -2123,7 +2133,7 @@ const LabelPage = ({
if (!e.ctrlKey && !e.metaKey && !e.altKey && lowerKey === "h") {
e.preventDefault()
handleToggleHideSelectedObject()
handleToggleHideAllObjects()
return
}
@@ -2424,7 +2434,7 @@ const LabelPage = ({
enterSelectedObjectDrawMode,
focusInput,
getOperationSchema,
handleToggleHideSelectedObject,
handleToggleHideAllObjects,
handleMergeSelectedObjects,
handleContinueSelectedPolygon,
handleShortcut,