1
1
import { nimap , nmap , nvmap , RoamVim } from 'src/core/features/vim-mode/vim'
2
2
import { VimRoamPanel } from 'src/core/features/vim-mode/roam/roam-vim-panel'
3
3
import { closePageReferenceView , expandLastBreadcrumb , openMentions , openParentPage } from 'src/core/roam/references'
4
+ import { RoamBlock } from 'src/core/features/vim-mode/roam/roam-block'
5
+ import { Selectors } from 'src/core/roam/selectors'
6
+ import { findNextNode } from 'src/core/common/dom'
7
+
8
+ const collapseReferenceView = ( ) => {
9
+ const referenceItem = RoamBlock . selected ( ) . element ?. closest ( Selectors . referenceItem )
10
+ const nextItem = referenceItem ? ( findNextNode ( referenceItem , Selectors . referenceItem ) as Element ) : undefined
11
+ const nextBlockId = nextItem ?. querySelector ( `${ Selectors . block } , ${ Selectors . blockInput } ` ) ?. id
12
+
13
+ closePageReferenceView ( )
14
+
15
+ if ( nextBlockId ) {
16
+ VimRoamPanel . selected ( ) . selectBlock ( nextBlockId )
17
+ }
18
+ }
4
19
5
20
export const NavigationCommands = [
6
21
nvmap ( 'h' , 'Select Block Up' , ( ) => RoamVim . jumpBlocksInFocusedPanel ( - 1 ) ) ,
@@ -15,7 +30,7 @@ export const NavigationCommands = [
15
30
// Avoid insert mode, to allow native ctrl-e to go to end of line
16
31
nvmap ( 'ctrl+e' , 'Scroll Down' , ( ) => VimRoamPanel . selected ( ) . scrollAndReselectBlockToStayVisible ( 50 ) ) ,
17
32
nimap ( 'alt+z' , 'Expand Last Reference Breadcrumb' , expandLastBreadcrumb ) ,
18
- nmap ( 'shift+z' , 'Collapse the view for the page in references (or query) section' , closePageReferenceView ) ,
33
+ nmap ( 'shift+z' , 'Collapse the view for the page in references (or query) section' , collapseReferenceView ) ,
19
34
nmap ( '1' , 'Open parent page' , ( ) => openParentPage ( ) ) ,
20
35
nmap ( 'shift+1' , 'Open parent page in sidebar' , ( ) => openParentPage ( true ) ) ,
21
36
nmap ( '2' , 'Open mentions' , ( ) => openMentions ( ) ) ,
0 commit comments