|
|
|
|
@ -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()
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
|