feat: set workflow zoom range for shortcut (#7563)

This commit is contained in:
Yi Xiao 2024-08-23 13:11:55 +08:00 committed by GitHub
parent 3ac8a2871e
commit a71fc18530
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -37,12 +37,25 @@ export const useShortcuts = (): void => {
const { handleLayout } = useWorkflowOrganize()
const {
zoomIn,
zoomOut,
zoomTo,
getZoom,
fitView,
} = useReactFlow()
// Zoom out to a minimum of 0.5 for shortcut
const constrainedZoomOut = () => {
const currentZoom = getZoom()
const newZoom = Math.max(currentZoom - 0.1, 0.5)
zoomTo(newZoom)
}
// Zoom in to a maximum of 1 for shortcut
const constrainedZoomIn = () => {
const currentZoom = getZoom()
const newZoom = Math.min(currentZoom + 0.1, 1)
zoomTo(newZoom)
}
const shouldHandleShortcut = useCallback((e: KeyboardEvent) => {
const { showFeaturesPanel } = workflowStore.getState()
return !showFeaturesPanel && !isEventTargetInputArea(e.target as HTMLElement)
@ -165,7 +178,7 @@ export const useShortcuts = (): void => {
useKeyPress(`${getKeyboardKeyCodeBySystem('ctrl')}.dash`, (e) => {
if (shouldHandleShortcut(e)) {
e.preventDefault()
zoomOut()
constrainedZoomOut()
handleSyncWorkflowDraft()
}
}, {
@ -176,7 +189,7 @@ export const useShortcuts = (): void => {
useKeyPress(`${getKeyboardKeyCodeBySystem('ctrl')}.equalsign`, (e) => {
if (shouldHandleShortcut(e)) {
e.preventDefault()
zoomIn()
constrainedZoomIn()
handleSyncWorkflowDraft()
}
}, {