Run chats independently
This commit is contained in:
@@ -30,6 +30,7 @@ impl App {
|
||||
self.a2ui_image_requests.insert(url.clone());
|
||||
self.a2ui_image_loading = true;
|
||||
let request_url = url.clone();
|
||||
let session_id = self.selected_session;
|
||||
Task::perform(
|
||||
async move {
|
||||
let mut response = ureq::get(&request_url)
|
||||
@@ -48,7 +49,7 @@ impl App {
|
||||
.read_to_vec()
|
||||
.map_err(|error| error.to_string())
|
||||
},
|
||||
move |result| Message::A2uiImageLoaded(url, result),
|
||||
move |result| Message::A2uiImageLoaded(session_id, url, result),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -159,17 +160,11 @@ impl App {
|
||||
/// Opens an unsaved session on a project and selects it. Nothing reaches the
|
||||
/// database until the first chat turn is stored by [`App::persist_session`].
|
||||
pub(super) fn create_session(&mut self, project_id: i32) {
|
||||
if self.generating {
|
||||
self.error = Some("Stop the active generation before creating a session.".into());
|
||||
return;
|
||||
}
|
||||
if self.database.is_none() {
|
||||
return;
|
||||
}
|
||||
#[cfg(target_os = "macos")]
|
||||
self.stop_agent_jobs();
|
||||
#[cfg(target_os = "macos")]
|
||||
self.tool_cards.clear();
|
||||
self.leave_current_chat();
|
||||
let title = draft_title(&self.projects, project_id);
|
||||
self.drafts.entry(project_id).or_insert(title);
|
||||
self.remember_project(project_id);
|
||||
|
||||
Reference in New Issue
Block a user