MCPcopy Create free account
hub / github.com/ZenNotes/zennotes / handlePreviewKey

Function handlePreviewKey

packages/app-core/src/components/VimNav.tsx:1553–1645  ·  view source on GitHub ↗
(
    e: KeyboardEvent,
    previewEl: HTMLElement,
    state: ReturnType<typeof useStore.getState>,
    panel: 'editor' | 'hoverpreview' = 'editor'
  )

Source from the content-addressed store, hash-verified

1551 }
1552
1553 function handlePreviewKey(
1554 e: KeyboardEvent,
1555 previewEl: HTMLElement,
1556 state: ReturnType<typeof useStore.getState>,
1557 panel: 'editor' | 'hoverpreview' = 'editor'
1558 ): void {
1559 const key = e.key
1560 const overrides = state.keymapOverrides
1561 const navKeys = new Set([
1562 'ArrowDown',
1563 'ArrowUp',
1564 'PageDown',
1565 'PageUp',
1566 'Home',
1567 'End'
1568 ])
1569 const wantsHalfPageDown = matchesSequenceToken(e, overrides, 'nav.halfPageDown')
1570 const wantsHalfPageUp = matchesSequenceToken(e, overrides, 'nav.halfPageUp')
1571 const wantsContextMenu =
1572 (matchesSequenceToken(e, overrides, 'nav.contextMenu') ||
1573 wantsNativeContextMenuKey(e)) &&
1574 !!getActiveTabContextMenuTarget(state)
1575
1576 if (
1577 navKeys.has(key) ||
1578 wantsHalfPageDown ||
1579 wantsHalfPageUp ||
1580 matchesSequenceToken(e, overrides, 'nav.moveDown') ||
1581 matchesSequenceToken(e, overrides, 'nav.moveUp') ||
1582 matchesSequenceToken(e, overrides, 'nav.jumpBottom') ||
1583 sequenceTokenFromEvent(e) === getSequenceTokens(overrides, 'nav.jumpTop')[0] ||
1584 matchesSequenceToken(e, overrides, 'nav.filter') ||
1585 wantsContextMenu
1586 ) {
1587 e.preventDefault()
1588 e.stopImmediatePropagation()
1589 } else {
1590 return
1591 }
1592
1593 if (state.focusedPanel !== panel) state.setFocusedPanel(panel)
1594
1595 if (matchesSequenceToken(e, overrides, 'nav.moveDown') || key === 'ArrowDown') {
1596 scrollPreviewBy(previewEl, getPreviewLineStep(previewEl))
1597 return
1598 }
1599 if (matchesSequenceToken(e, overrides, 'nav.moveUp') || key === 'ArrowUp') {
1600 scrollPreviewBy(previewEl, -getPreviewLineStep(previewEl))
1601 return
1602 }
1603 if (key === 'PageDown' || wantsHalfPageDown) {
1604 scrollPreviewBy(previewEl, getPreviewPageStep(previewEl))
1605 return
1606 }
1607 if (key === 'PageUp' || wantsHalfPageUp) {
1608 scrollPreviewBy(previewEl, -getPreviewPageStep(previewEl))
1609 return
1610 }

Callers 2

handlerFunction · 0.85
handleHoverPreviewKeyFunction · 0.85

Calls 12

matchesSequenceTokenFunction · 0.90
sequenceTokenFromEventFunction · 0.90
getSequenceTokensFunction · 0.90
advanceSequenceFunction · 0.90
getKeymapBindingFunction · 0.90
scrollPreviewByFunction · 0.85
getPreviewLineStepFunction · 0.85
getPreviewPageStepFunction · 0.85
scrollPreviewToFunction · 0.85
openActiveTabContextMenuFunction · 0.85

Tested by

no test coverage detected