mirror of
https://github.com/veeso/termscp.git
synced 2025-12-07 09:36:00 -08:00
view render method
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// imports
|
// imports
|
||||||
use super::{Component, InputEvent, Msg, Payload, Props, PropsBuilder};
|
use super::{Component, InputEvent, Msg, Payload, Props, PropsBuilder, Render};
|
||||||
// ext
|
// ext
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
@@ -69,6 +69,18 @@ impl View {
|
|||||||
self.components.remove(id);
|
self.components.remove(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -- render
|
||||||
|
|
||||||
|
/// ### render
|
||||||
|
///
|
||||||
|
/// Render component with the provided id
|
||||||
|
pub fn render(&self, id: &str) -> Option<Render> {
|
||||||
|
match self.components.get(id) {
|
||||||
|
None => None,
|
||||||
|
Some(component) => component.render(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// -- props
|
// -- props
|
||||||
|
|
||||||
/// ### get_props
|
/// ### get_props
|
||||||
@@ -224,6 +236,16 @@ mod tests {
|
|||||||
assert!(view.components.get(text).is_none());
|
assert!(view.components.get(text).is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_ui_layout_view_mount_render() {
|
||||||
|
let mut view: View = View::init();
|
||||||
|
// Mount component
|
||||||
|
let input: &str = "INPUT";
|
||||||
|
view.mount(input, make_component_input());
|
||||||
|
assert!(view.render(input).is_some());
|
||||||
|
assert!(view.render("unexisting").is_none());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ui_layout_view_focus() {
|
fn test_ui_layout_view_focus() {
|
||||||
let mut view: View = View::init();
|
let mut view: View = View::init();
|
||||||
@@ -352,7 +374,10 @@ mod tests {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
view.on(InputEvent::Key(KeyEvent::from(KeyCode::Enter)))
|
view.on(InputEvent::Key(KeyEvent::from(KeyCode::Enter)))
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
(input.to_string(), Msg::OnSubmit(Payload::Text(String::from("text1"))))
|
(
|
||||||
|
input.to_string(),
|
||||||
|
Msg::OnSubmit(Payload::Text(String::from("text1")))
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user