Add cursor to textarea

This commit is contained in:
2025-10-15 18:06:45 +08:00
parent 8142d542f6
commit a776e55187
8 changed files with 109 additions and 42 deletions

View File

@@ -1,4 +1,4 @@
use std::any::Any;
use std::any::{Any};
use crate::event::{AppEvent, EventHandler};
use ratatui::{DefaultTerminal, Frame};
use std::time::Duration;
@@ -6,10 +6,11 @@ use color_eyre::Result;
use crossterm::event::{Event, KeyEvent};
use crossterm::event::Event as CrosstermEvent;
use diesel::{Connection, SqliteConnection};
use rat_cursor::HasScreenCursor;
use crate::config::types::ApplicationConfig;
use crate::constants::{APP_CONFIG_DIR, APP_CONIFG_FILE_PATH, APP_DATA_DIR};
use crate::widgets::views::{View};
use crate::widgets::views::main_view::MainView;
use crate::widgets::views::MainView;
pub(crate) struct App {
events: EventHandler,
@@ -99,6 +100,9 @@ impl App {
if let Some(view) = self.state.view.as_mut() {
if let Some(main_view) = view.downcast_mut::<MainView>() {
frame.render_stateful_widget(MainView::new(&self.app_config), frame.area(), &mut main_view.state);
if let Some(pos) = main_view.screen_cursor() {
frame.set_cursor_position(pos);
}
}
}
}