extern crate cursive_async_view;
use std::thread;
use std::time::Duration;
use cursive::views::{Dialog, TextView};
use cursive::{Cursive, CursiveExt};
use cursive_async_view::AsyncView;
fn main() {
let mut siv = Cursive::default();
siv.add_global_callback('q', Cursive::quit);
let async_view = AsyncView::new_with_bg_creator(
&mut siv,
move || {
thread::sleep(Duration::from_secs(5));
Ok("Yeet! It worked 🖖")
},
TextView::new,
);
let dialog = Dialog::around(async_view.with_width(40)).button("Ok", |s| s.quit());
siv.add_layer(dialog);
siv.run();
}