[tui] Remove AppComponent data.
It just seems to be simpler this way.
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
use crate::tui::app::{AppComponents, ComponentOf};
|
||||
use crate::tui::component::{Action, Component, ComponentState, Focus};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::crossterm::event::{Event, KeyCode, KeyEvent};
|
||||
@@ -14,27 +13,16 @@ pub struct Logger {
|
||||
pub(crate) component_state: ComponentState,
|
||||
}
|
||||
|
||||
impl<'a> ComponentOf<Logger> for AppComponents<'a> {
|
||||
fn as_ref(&self) -> Option<&Logger> {
|
||||
if let AppComponents::AppLogger(ref e) = *self {
|
||||
return Some(e);
|
||||
}
|
||||
None
|
||||
}
|
||||
fn as_mut(&mut self) -> Option<&mut Logger> {
|
||||
if let AppComponents::AppLogger(ref mut e) = *self {
|
||||
return Some(e);
|
||||
}
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
impl Logger {
|
||||
pub fn id() -> &'static str {
|
||||
"Logger"
|
||||
}
|
||||
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
state: TuiWidgetState::new(),
|
||||
component_state: ComponentState::default().with_help_text(concat!(
|
||||
"Q: Quit | Tab: Switch state | ↑/↓: Select target | f: Focus target",
|
||||
"Q: Quit | ↑/↓: Select target | f: Focus target",
|
||||
" | ←/→: Display level | +/-: Filter level | Space: Toggle hidden targets",
|
||||
" | h: Hide target selector | PageUp/Down: Scroll | Esc: Cancel scroll"
|
||||
)),
|
||||
@@ -47,7 +35,6 @@ impl Widget for &Logger {
|
||||
where
|
||||
Self: Sized,
|
||||
{
|
||||
// TODO: Use output_file?
|
||||
TuiLoggerSmartWidget::default()
|
||||
.style_error(Style::default().fg(Color::Red))
|
||||
.style_debug(Style::default().fg(Color::Green))
|
||||
@@ -66,14 +53,6 @@ impl Widget for &Logger {
|
||||
}
|
||||
|
||||
impl Component for Logger {
|
||||
fn id(&self) -> &str {
|
||||
"Logger"
|
||||
}
|
||||
|
||||
fn is_active(&self) -> bool {
|
||||
self.component_state.focus == Focus::Active
|
||||
}
|
||||
|
||||
fn handle_event(&mut self, event: Event) -> anyhow::Result<Action> {
|
||||
if let Some(key_event) = event.as_key_event() {
|
||||
return self.handle_key_events(key_event);
|
||||
@@ -99,4 +78,8 @@ impl Component for Logger {
|
||||
}
|
||||
Ok(Action::Pass)
|
||||
}
|
||||
|
||||
fn is_active(&self) -> bool {
|
||||
self.component_state.focus == Focus::Active
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user