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