use crate::session::ImageAttachment;
use crate::tui::app::state::App;
use crate::tui::app::worker_bridge::handle_processing_stopped;
use crate::tui::chat::message::{ChatMessage, MessageType};
use crate::tui::worker_bridge::TuiWorkerBridge;
pub(crate) fn push_user_messages(app: &mut App, prompt: &str, images: &[ImageAttachment]) {
app.state
.messages
.push(ChatMessage::new(MessageType::User, prompt.to_string()));
for image in images {
app.state.messages.push(ChatMessage::new(
MessageType::Image {
url: image.data_url.clone(),
},
image.data_url.clone(),
));
}
}
pub(super) async fn no_provider_error(app: &mut App, bridge: &Option<TuiWorkerBridge>) {
handle_processing_stopped(app, bridge).await;
app.state.clear_request_timing();
app.state.messages.push(ChatMessage::new(
MessageType::Error,
"No providers available. Configure credentials first.",
));
app.state.status = "No providers configured".to_string();
app.state.scroll_to_bottom();
}