@@ -22,6 +22,8 @@ pub enum Action {
2222 Backspace ,
2323 SubmitInput ,
2424 CancelInput ,
25+ ScrollUp ,
26+ ScrollDown ,
2527}
2628
2729#[ derive( PartialEq ) ]
@@ -49,6 +51,7 @@ pub struct App {
4951 pub syncing : bool ,
5052 pub spinner_index : usize ,
5153 pub clipboard : Option < Clipboard > ,
54+ pub preview_scroll : u16 ,
5255}
5356
5457impl App {
@@ -83,6 +86,7 @@ impl App {
8386 syncing : false ,
8487 spinner_index : 0 ,
8588 clipboard,
89+ preview_scroll : 0 ,
8690 } ;
8791
8892 if !app. notes . is_empty ( ) {
@@ -168,6 +172,7 @@ impl App {
168172 } ;
169173 self . list_state . select ( Some ( i) ) ;
170174 self . load_note_content ( i) ;
175+ self . preview_scroll = 0 ;
171176 }
172177
173178 pub fn previous ( & mut self ) {
@@ -183,6 +188,7 @@ impl App {
183188 } ;
184189 self . list_state . select ( Some ( i) ) ;
185190 self . load_note_content ( i) ;
191+ self . preview_scroll = 0 ;
186192 }
187193
188194 pub fn tick ( & mut self ) {
@@ -200,6 +206,12 @@ impl App {
200206 match self . input_mode {
201207 InputMode :: Normal => match key. code {
202208 KeyCode :: Char ( 'q' ) => Action :: Quit ,
209+ KeyCode :: Char ( 'j' ) if key. modifiers . contains ( crossterm:: event:: KeyModifiers :: CONTROL ) => {
210+ Action :: ScrollDown
211+ }
212+ KeyCode :: Char ( 'k' ) if key. modifiers . contains ( crossterm:: event:: KeyModifiers :: CONTROL ) => {
213+ Action :: ScrollUp
214+ }
203215 KeyCode :: Char ( 'j' ) => {
204216 self . next ( ) ;
205217 Action :: None
0 commit comments