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