diff --git a/examples/single_line.rs b/examples/single_line.rs index 1dbb838..ed43950 100644 --- a/examples/single_line.rs +++ b/examples/single_line.rs @@ -10,7 +10,7 @@ use tui::widgets::{Block, Borders}; use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; -fn update(textarea: &mut TextArea) -> bool { +fn validate(textarea: &mut TextArea) -> bool { if let Err(err) = textarea.lines()[0].parse::() { textarea.set_style(Style::default().fg(Color::LightRed)); textarea.set_block( @@ -39,7 +39,7 @@ fn main() -> io::Result<()> { textarea.set_cursor_line_style(Style::default()); let layout = Layout::default().constraints([Constraint::Length(3), Constraint::Min(1)].as_slice()); - let mut is_valid = update(&mut textarea); + let mut is_valid = validate(&mut textarea); loop { term.draw(|f| { @@ -64,7 +64,7 @@ fn main() -> io::Result<()> { input => { // TextArea::input returns if the input modified its text if textarea.input(input) { - is_valid = update(&mut textarea); + is_valid = validate(&mut textarea); } } } diff --git a/examples/variable.rs b/examples/variable.rs index 5c37983..5d20602 100644 --- a/examples/variable.rs +++ b/examples/variable.rs @@ -2,9 +2,10 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use std::cmp; use std::io; use tui::backend::CrosstermBackend; -use tui::layout::{Constraint, Layout}; +use tui::layout::{Constraint, Direction, Layout}; use tui::widgets::{Block, Borders}; use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; @@ -27,9 +28,11 @@ fn main() -> io::Result<()> { loop { term.draw(|f| { - let len = textarea.lines().len() as u16 + 2; // + 2 for borders + const MIN_HEIGHT: usize = 3; + let height = cmp::max(textarea.lines().len(), MIN_HEIGHT) as u16 + 2; // + 2 for borders let chunks = Layout::default() - .constraints([Constraint::Length(len), Constraint::Min(1)].as_slice()) + .direction(Direction::Vertical) + .constraints([Constraint::Length(height), Constraint::Min(0)].as_slice()) .split(f.size()); f.render_widget(textarea.widget(), chunks[0]); })?;