@@ -2,7 +2,7 @@ use std::sync::Arc;
22
33use promkit_widgets:: {
44 core:: { crossterm:: event:: Event , grapheme:: StyledGraphemes , render:: SharedRenderer , Widget } ,
5- jsonstream :: { self , JsonStream } ,
5+ json_tree :: { self , JsonTree } ,
66 serde_json:: { self , Value } ,
77} ;
88use tokio:: {
@@ -30,7 +30,7 @@ pub enum RenderTrigger {
3030/// JSON viewer that maintains the state of JSON stream
3131/// and handles user interactions and query processing.
3232pub struct JsonViewer {
33- state : jsonstream :: State ,
33+ state : json_tree :: State ,
3434 json : Vec < serde_json:: Value > ,
3535 keybinds : JsonViewerKeybinds ,
3636}
@@ -40,43 +40,43 @@ pub type SharedJsonViewer = Arc<Mutex<JsonViewer>>;
4040impl JsonViewer {
4141 /// Get the formatted content of current JSON stream.
4242 pub fn formatted_content ( & self ) -> String {
43- self . state . config . format_raw_json ( self . state . stream . rows ( ) )
43+ self . state . render_pretty_json ( )
4444 }
4545
4646 /// Handle user event and update the viewer state accordingly.
4747 fn handle_user_event ( & mut self , event : & Event ) {
4848 match event {
4949 // Move up.
5050 event if self . keybinds . up . contains ( event) => {
51- self . state . stream . up ( ) ;
51+ self . state . tree . up ( ) ;
5252 }
5353
5454 // Move down.
5555 event if self . keybinds . down . contains ( event) => {
56- self . state . stream . down ( ) ;
56+ self . state . tree . down ( ) ;
5757 }
5858
5959 // Move to head
6060 event if self . keybinds . move_to_head . contains ( event) => {
61- self . state . stream . head ( ) ;
61+ self . state . tree . head ( ) ;
6262 }
6363
6464 // Move to tail
6565 event if self . keybinds . move_to_tail . contains ( event) => {
66- self . state . stream . tail ( ) ;
66+ self . state . tree . tail ( ) ;
6767 }
6868
6969 // Toggle collapse/expand
7070 event if self . keybinds . toggle . contains ( event) => {
71- self . state . stream . toggle ( ) ;
71+ self . state . tree . toggle ( ) ;
7272 }
7373
7474 event if self . keybinds . expand . contains ( event) => {
75- self . state . stream . set_nodes_visibility ( false ) ;
75+ self . state . tree . set_nodes_visibility ( false ) ;
7676 }
7777
7878 event if self . keybinds . collapse . contains ( event) => {
79- self . state . stream . set_nodes_visibility ( true ) ;
79+ self . state . tree . set_nodes_visibility ( true ) ;
8080 }
8181
8282 _ => ( ) ,
@@ -95,15 +95,15 @@ impl JsonViewer {
9595 if ret. iter ( ) . all ( |val| * val == Value :: Null ) {
9696 guide = Some ( GuideMessage :: JqReturnedNull ( input) ) ;
9797
98- self . state . stream = JsonStream :: new ( self . json . iter ( ) ) ;
98+ self . state . tree = JsonTree :: new ( self . json . iter ( ) ) ;
9999 } else {
100- self . state . stream = JsonStream :: new ( ret. iter ( ) ) ;
100+ self . state . tree = JsonTree :: new ( ret. iter ( ) ) ;
101101 }
102102
103103 ( guide, Some ( self . state . create_graphemes ( area. 0 , area. 1 ) ) )
104104 }
105105 Err ( e) => {
106- self . state . stream = JsonStream :: new ( self . json . iter ( ) ) ;
106+ self . state . tree = JsonTree :: new ( self . json . iter ( ) ) ;
107107
108108 (
109109 Some ( GuideMessage :: JqFailed ( e. to_string ( ) ) ) ,
@@ -132,9 +132,9 @@ pub async fn initialize(
132132 }
133133
134134 let input_stream = json:: deserialize ( input, config. max_streams ) ?;
135- let stream = JsonStream :: new ( input_stream. iter ( ) ) ;
136- let state = jsonstream :: State {
137- stream ,
135+ let tree = JsonTree :: new ( input_stream. iter ( ) ) ;
136+ let state = json_tree :: State {
137+ tree ,
138138 config : config. stream ,
139139 } ;
140140
0 commit comments