use mastodonochrome::auth::AuthConfig;
use std::io::Read;
-fn main() -> Result<(), mastodonochrome::OurError> {
+use crossterm::{
+ event::{self, Event, KeyCode, KeyEventKind},
+ terminal::{
+ disable_raw_mode, enable_raw_mode, EnterAlternateScreen,
+ LeaveAlternateScreen,
+ },
+ ExecutableCommand,
+};
+use ratatui::{
+ prelude::{CrosstermBackend, Stylize, Terminal},
+ widgets::{Paragraph, Wrap},
+};
+use std::io::stdout;
+
+#[allow(unused)]
+fn streaming(auth: &AuthConfig) -> Result<(), mastodonochrome::OurError> {
let auth = AuthConfig::load()?;
let client = reqwest::blocking::Client::new();
Ok(())
}
+
+fn main() -> std::io::Result<()> {
+ stdout().execute(EnterAlternateScreen)?;
+ enable_raw_mode()?;
+ let mut terminal = Terminal::new(CrosstermBackend::new(stdout()))?;
+ terminal.clear()?;
+
+ let (sender, receiver) = std::sync::mpsc::sync_channel(1);
+
+ let _term_input_thread = std::thread::spawn(move || {
+ while let Ok(ev) = event::read() {
+ if let Err(_) = sender.send(ev) {
+ break;
+ }
+ }
+ });
+
+ loop {
+ terminal.draw(|frame| {
+ let area = frame.size();
+ dbg!("sqook!", std::time::SystemTime::now());
+ frame.render_widget(
+ Paragraph::new("Hello Ratatui! (press 'q' to quit)")
+ .white()
+ .on_blue()
+ .wrap(Wrap { trim: true }),
+ area,
+ );
+ })?;
+
+ match receiver.recv() {
+ Err(_) => break,
+ Ok(ev) => {
+ dbg!(&ev);
+ match ev {
+ Event::Key(key) => {
+ if key.kind == KeyEventKind::Press
+ && key.code == KeyCode::Char('q')
+ {
+ break;
+ }
+ },
+ _ => (),
+ }
+ },
+ }
+ }
+ stdout().execute(LeaveAlternateScreen)?;
+ disable_raw_mode()?;
+ Ok(())
+}