From 135ef44feb188177fd823580ac0171c0976165ba Mon Sep 17 00:00:00 2001
From: 2Shirt <2xShirt@gmail.com>
Date: Sat, 17 Jan 2026 13:36:36 -0800
Subject: [PATCH] Add question popup type
---
core/src/action.rs | 2 ++
core/src/components/popup.rs | 34 ++++++++++++++++++++++++++--
core/src/components/select_ticket.rs | 15 ++++++------
deja_vu/src/app.rs | 7 ++++++
4 files changed, 49 insertions(+), 9 deletions(-)
diff --git a/core/src/action.rs b/core/src/action.rs
index 0df6928..5cd8c9b 100644
--- a/core/src/action.rs
+++ b/core/src/action.rs
@@ -64,6 +64,8 @@ pub enum Action {
PostResponse { color: ResponseColor, text: String },
ResetTicket,
SelectTicket(u16),
+ UserNo,
+ UserYes,
// Screens
DismissPopup,
DisplayPopup(PopupType, String),
diff --git a/core/src/components/popup.rs b/core/src/components/popup.rs
index 32c0292..498f322 100644
--- a/core/src/components/popup.rs
+++ b/core/src/components/popup.rs
@@ -14,6 +14,7 @@
// along with Deja-Vu. If not, see .
//
use color_eyre::Result;
+use crossterm::event::KeyCode;
use rand::random;
use ratatui::{
prelude::*,
@@ -25,13 +26,14 @@ use tokio::sync::mpsc::UnboundedSender;
use tracing::info;
use super::Component;
-use crate::{action::Action, config::Config};
+use crate::{action::Action, config::Config, tui::Event};
#[derive(Default, Debug, Clone, PartialEq, Eq, Display, Serialize, Deserialize)]
pub enum Type {
#[default]
Info,
Error,
+ Question,
Success,
}
@@ -39,6 +41,7 @@ pub enum Type {
pub struct Popup {
command_tx: Option>,
config: Config,
+ get_input: bool,
popup_type: Type,
popup_text: String,
}
@@ -46,7 +49,10 @@ pub struct Popup {
impl Popup {
#[must_use]
pub fn new() -> Self {
- Self::default()
+ Self {
+ get_input: false,
+ ..Default::default()
+ }
}
}
@@ -61,11 +67,34 @@ impl Component for Popup {
Ok(())
}
+ fn handle_events(&mut self, event: Option) -> Result