diff --git a/src/app/dashboard/tab_pallets.rs b/src/app/dashboard/tab_pallets.rs index 5cb633e..6ef8710 100644 --- a/src/app/dashboard/tab_pallets.rs +++ b/src/app/dashboard/tab_pallets.rs @@ -4,10 +4,9 @@ use ratatui::{ style::Stylize, widgets::*, }; -use scale_value::Value; // this crate use super::DashBoard; -use crate::networks::ChainInfo; +use crate::{handler::print_storage_type, networks::ChainInfo}; pub fn draw_pallets_tab(f: &mut Frame, app: &mut DashBoard, area: Rect) { let chunks = Layout::default() @@ -132,11 +131,39 @@ fn render_pallet_storages_page(f: &mut Frame, dash_board: &mut Da .title_style(Style::default().bold().italic()) .borders(Borders::ALL) .border_type(BorderType::Double) + .padding(Padding::horizontal(2)) .style(Style::default().fg(Color::Yellow)); - let text = "Storages Page".to_string(); - let paragraph = Paragraph::new(text).block(block_style).wrap(Wrap { trim: true }); - f.render_widget(paragraph, area); + if let Some((id, name)) = dash_board.selected_pallet.clone() { + let pallet = dash_board.metadata.pallets().find(|p| p.name() == name && p.index() == id); + if let Some(pallet) = pallet { + if let Some(s) = pallet.storage() { + let storages: Vec = s + .entries() + .into_iter() + .map(|e| { + ListItem::new(vec![Line::from(Span::styled( + format!("> {} : {}", e.name(), &print_storage_type(e.entry_type().clone(), &dash_board.metadata)), + Style::default().fg(Color::Yellow), + ))]) + }) + .collect(); + + if storages.len() != 0 { + let l = List::new(storages).block(block_style); + f.render_widget(l, area); + } else { + let text = "None".to_string(); + let paragraph = Paragraph::new(text).block(block_style).wrap(Wrap { trim: true }); + f.render_widget(paragraph, area); + } + } else { + let text = "None".to_string(); + let paragraph = Paragraph::new(text).block(block_style).wrap(Wrap { trim: true }); + f.render_widget(paragraph, area); + } + } + } } fn render_pallet_calls_page(f: &mut Frame, dash_board: &mut DashBoard, area: Rect) { let block_style = Block::default() diff --git a/src/handler/mod.rs b/src/handler/mod.rs index a5e2cc6..20c94a9 100644 --- a/src/handler/mod.rs +++ b/src/handler/mod.rs @@ -1,5 +1,7 @@ mod printer; +pub use crate::handler::printer::print_storage_type; + // std use std::{ fs::File, @@ -30,7 +32,7 @@ use crate::{ RuntimeCommand, POLKADOT_CLI, }, errors::AppError, - handler::printer::{print_result, print_storage_type, print_usage}, + handler::printer::{print_result, print_usage}, networks::{ChainInfo, Network}, rpc::{single_map_storage_key, AccountBalances, AccountNonce, ChainApi, RpcClient, RpcError, StateApi, SubscribeApi, SystemApi}, };