feat: connect to SQLite from the TUI

This commit is contained in:
Valdemar Lorenzen
2026-10-19 12:19:10 +02:00
parent bbc21f96cf
commit af7e8cad25
3 changed files with 282 additions and 32 deletions
+4 -16
View File
@@ -1,6 +1,6 @@
use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind, KeyModifiers};
use ratatui::{
DefaultTerminal, Frame,
Frame,
layout::{Constraint, Layout},
style::{Color, Modifier, Style},
text::Line,
@@ -55,19 +55,7 @@ impl App {
Ok(app)
}
pub fn run(&mut self, terminal: &mut DefaultTerminal) -> Result<()> {
loop {
terminal.draw(|frame| self.draw(frame))?;
if let Event::Key(key) = event::read()?
&& matches!(key.kind, KeyEventKind::Press | KeyEventKind::Repeat)
&& self.handle_key(key)
{
return Ok(());
}
}
}
fn handle_key(&mut self, key: KeyEvent) -> bool {
pub(crate) fn handle_key(&mut self, key: KeyEvent) -> bool {
if key.code == KeyCode::Char('q')
|| (key.code == KeyCode::Char('c') && key.modifiers.contains(KeyModifiers::CONTROL))
{
@@ -183,7 +171,7 @@ impl App {
}
}
fn draw(&mut self, frame: &mut Frame) {
pub(crate) fn draw(&mut self, frame: &mut Frame) {
let area = frame.area();
if area.width < 70 || area.height < 12 {
frame.render_widget(
@@ -360,7 +348,7 @@ impl App {
);
}
frame.render_widget(Paragraph::new(
" Tab focus · ↑↓/jk move · Enter open · s schema/rows\n ←→/hl columns · n/p page · r refresh · q/Ctrl-C quit"
" Tab focus · ↑↓/jk move · Enter open · s schema/rows\n ←→/hl columns · n/p page · r refresh · c connect · q quit"
).style(Style::default().fg(Color::DarkGray)), help);
}
}