Skip to content

Commit 2994cce

Browse files
committed
docs: use ratatui 0.28.1 methods for examples
1 parent 7e38003 commit 2994cce

File tree

2 files changed

+26
-110
lines changed

2 files changed

+26
-110
lines changed

tui-scrollview/examples/scrollview.rs

+16-48
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
1-
use std::io::{self, stdout};
1+
use std::io::{self};
22

3-
use color_eyre::{config::HookBuilder, Result};
3+
use color_eyre::Result;
44
use ratatui::{
5-
crossterm::{
6-
event::{self, Event, KeyCode, KeyEventKind},
7-
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
8-
ExecutableCommand,
9-
},
10-
layout::Size,
11-
prelude::*,
12-
style::palette::tailwind,
5+
buffer::Buffer,
6+
crossterm::event::{self, Event, KeyCode, KeyEventKind},
7+
layout::{Constraint, Direction, Layout, Rect, Size},
8+
style::{palette::tailwind, Color, Stylize},
9+
text::{Line, Text},
1310
widgets::*,
11+
DefaultTerminal,
1412
};
1513
use tui_scrollview::{ScrollView, ScrollViewState};
1614

1715
fn main() -> Result<()> {
18-
init_error_hooks()?;
19-
let terminal = init_terminal()?;
20-
App::new().run(terminal)?;
21-
restore_terminal()?;
22-
Ok(())
16+
color_eyre::install()?;
17+
let terminal = ratatui::init();
18+
let result = App::new().run(terminal);
19+
ratatui::restore();
20+
result
2321
}
2422

2523
#[derive(Debug, Default, Clone)]
@@ -48,11 +46,10 @@ impl App {
4846
}
4947
}
5048

51-
fn run(&mut self, mut terminal: Terminal<impl Backend>) -> Result<()> {
52-
self.draw(&mut terminal)?;
49+
fn run(&mut self, mut terminal: DefaultTerminal) -> Result<()> {
5350
while self.is_running() {
54-
self.handle_events()?;
5551
self.draw(&mut terminal)?;
52+
self.handle_events()?;
5653
}
5754
Ok(())
5855
}
@@ -61,7 +58,7 @@ impl App {
6158
self.state == AppState::Running
6259
}
6360

64-
fn draw(&mut self, terminal: &mut Terminal<impl Backend>) -> io::Result<()> {
61+
fn draw(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> {
6562
terminal.draw(|frame| frame.render_widget(self, frame.area()))?;
6663
Ok(())
6764
}
@@ -190,32 +187,3 @@ fn bars() -> BarGroup<'static> {
190187
.map(|(label, value, color)| Bar::default().label(label.into()).value(value).style(color));
191188
BarGroup::default().bars(&data)
192189
}
193-
194-
fn init_error_hooks() -> Result<()> {
195-
let (panic, error) = HookBuilder::default().into_hooks();
196-
let panic = panic.into_panic_hook();
197-
let error = error.into_eyre_hook();
198-
color_eyre::eyre::set_hook(Box::new(move |e| {
199-
let _ = restore_terminal();
200-
error(e)
201-
}))?;
202-
std::panic::set_hook(Box::new(move |info| {
203-
let _ = restore_terminal();
204-
panic(info)
205-
}));
206-
Ok(())
207-
}
208-
209-
fn init_terminal() -> Result<Terminal<impl Backend>> {
210-
enable_raw_mode()?;
211-
stdout().execute(EnterAlternateScreen)?;
212-
let backend = CrosstermBackend::new(stdout());
213-
let terminal = Terminal::new(backend)?;
214-
Ok(terminal)
215-
}
216-
217-
fn restore_terminal() -> Result<()> {
218-
disable_raw_mode()?;
219-
stdout().execute(LeaveAlternateScreen)?;
220-
Ok(())
221-
}

tui-scrollview/examples/tabs.rs

+10-62
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@ use ratatui::{
1616
style::{palette::tailwind, Stylize},
1717
text::Line,
1818
widgets::{Paragraph, StatefulWidget, StatefulWidgetRef, Tabs, Widget, Wrap},
19+
DefaultTerminal,
1920
};
20-
use tui::Tui;
2121
use tui_scrollview::{ScrollView, ScrollViewState};
2222

2323
fn main() -> Result<()> {
24-
tui::init_error_hooks()?;
25-
let terminal = tui::init_terminal()?;
26-
let app = &mut App::new();
27-
app.run(terminal)?;
28-
tui::restore_terminal()?;
29-
Ok(())
24+
color_eyre::install()?;
25+
let terminal = ratatui::init();
26+
let result = App::new().run(terminal);
27+
ratatui::restore();
28+
result
3029
}
3130

3231
#[derive(Default)]
@@ -121,9 +120,9 @@ impl App {
121120
}
122121
}
123122

124-
fn run(&mut self, mut tui: Tui) -> Result<()> {
123+
fn run(&mut self, mut terminal: DefaultTerminal) -> Result<()> {
125124
while self.is_running() {
126-
self.draw(&mut tui)?;
125+
self.draw(&mut terminal)?;
127126
self.handle_events()?;
128127
}
129128
Ok(())
@@ -133,8 +132,8 @@ impl App {
133132
self.state == AppState::Running
134133
}
135134

136-
fn draw(&mut self, tui: &mut Tui) -> io::Result<()> {
137-
tui.draw(|frame| frame.render_widget(self, frame.area()))?;
135+
fn draw(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> {
136+
terminal.draw(|frame| frame.render_widget(self, frame.area()))?;
138137
Ok(())
139138
}
140139

@@ -277,54 +276,3 @@ impl StatefulWidgetRef for BlueTab {
277276
scroll_view.render(area, buf, state);
278277
}
279278
}
280-
281-
mod tui {
282-
use std::{
283-
io::{self, stdout, Stdout},
284-
panic,
285-
};
286-
287-
use color_eyre::{config::HookBuilder, eyre, Result};
288-
use ratatui::{
289-
backend::CrosstermBackend,
290-
crossterm::{
291-
terminal::{
292-
disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
293-
},
294-
ExecutableCommand,
295-
},
296-
Terminal,
297-
};
298-
299-
// a type alias to simplify the use of the crossterm backend
300-
pub type Tui = Terminal<CrosstermBackend<Stdout>>;
301-
302-
pub fn init_error_hooks() -> Result<()> {
303-
let (panic, error) = HookBuilder::default().into_hooks();
304-
let panic = panic.into_panic_hook();
305-
let error = error.into_eyre_hook();
306-
eyre::set_hook(Box::new(move |e| {
307-
let _ = restore_terminal();
308-
error(e)
309-
}))?;
310-
panic::set_hook(Box::new(move |info| {
311-
let _ = restore_terminal();
312-
panic(info)
313-
}));
314-
Ok(())
315-
}
316-
317-
pub fn init_terminal() -> io::Result<Tui> {
318-
enable_raw_mode()?;
319-
stdout().execute(EnterAlternateScreen)?;
320-
let backend = CrosstermBackend::new(stdout());
321-
let terminal = Terminal::new(backend)?;
322-
Ok(terminal)
323-
}
324-
325-
pub fn restore_terminal() -> io::Result<()> {
326-
disable_raw_mode()?;
327-
stdout().execute(LeaveAlternateScreen)?;
328-
Ok(())
329-
}
330-
}

0 commit comments

Comments
 (0)