fix upload button

This commit is contained in:
2026-09-15 20:17:36 +07:00
parent 8303b054f9
commit 06449d226f
2 changed files with 12 additions and 8 deletions
+6 -4
View File
@@ -3,7 +3,7 @@ use std::path::PathBuf;
use std::sync::{Arc, LazyLock, RwLock}; use std::sync::{Arc, LazyLock, RwLock};
pub use actions::*; pub use actions::*;
use anyhow::{Context as AnyhowContext, Error}; use anyhow::Error;
use chat::{ChatRegistry, Message, Room, RoomEvent, SendReport, SendStatus}; use chat::{ChatRegistry, Message, Room, RoomEvent, SendReport, SendStatus};
use common::{TimestampExt, coop_cache}; use common::{TimestampExt, coop_cache};
use futures::lock::Mutex; use futures::lock::Mutex;
@@ -709,13 +709,15 @@ impl ChatPanel {
}); });
self.tasks.push(cx.spawn_in(window, async move |this, cx| { self.tasks.push(cx.spawn_in(window, async move |this, cx| {
// Selecting no file means the prompt was cancelled
let Some(path) = path.await??.and_then(|mut paths| paths.pop()) else {
return Ok(());
};
this.update(cx, |this, cx| { this.update(cx, |this, cx| {
this.set_uploading(true, cx); this.set_uploading(true, cx);
})?; })?;
let mut paths = path.await??.context("Not found")?;
let path = paths.pop().context("No path")?;
// Upload the file, encrypted when it is the whole message // Upload the file, encrypted when it is the whole message
let result = if encrypted { let result = if encrypted {
upload_encrypted(server, path.clone(), cx) upload_encrypted(server, path.clone(), cx)
+6 -4
View File
@@ -1,6 +1,6 @@
use std::str::FromStr; use std::str::FromStr;
use anyhow::{Context as AnyhowContext, Error}; use anyhow::Error;
use gpui::{ use gpui::{
AnyElement, App, AppContext, ClipboardItem, Context, Entity, EventEmitter, FocusHandle, AnyElement, App, AppContext, ClipboardItem, Context, Entity, EventEmitter, FocusHandle,
Focusable, IntoElement, ParentElement, PathPromptOptions, Render, SharedString, Styled, Task, Focusable, IntoElement, ParentElement, PathPromptOptions, Render, SharedString, Styled, Task,
@@ -167,13 +167,15 @@ impl ProfilePanel {
}); });
self.tasks.push(cx.spawn_in(window, async move |this, cx| { self.tasks.push(cx.spawn_in(window, async move |this, cx| {
// Selecting no file means the prompt was cancelled
let Some(path) = path.await??.and_then(|mut paths| paths.pop()) else {
return Ok(());
};
this.update(cx, |this, cx| { this.update(cx, |this, cx| {
this.set_uploading(true, cx); this.set_uploading(true, cx);
})?; })?;
let mut paths = path.await??.context("Not found")?;
let path = paths.pop().context("No path")?;
// Upload via blossom client // Upload via blossom client
match upload(server, path, cx).await { match upload(server, path, cx).await {
Ok(url) => { Ok(url) => {