Pre-fill body of email with system specs (#27210)
I think we still want to be able to easily capture system spec info from users. They can decide if they want to include it or not. Release Notes: - N/A
This commit is contained in:
parent
27ebedf517
commit
7931b1d345
1 changed files with 22 additions and 4 deletions
|
@ -22,8 +22,6 @@ const ZED_REPO_URL: &str = "https://github.com/zed-industries/zed";
|
||||||
|
|
||||||
const REQUEST_FEATURE_URL: &str = "https://github.com/zed-industries/zed/discussions/new/choose";
|
const REQUEST_FEATURE_URL: &str = "https://github.com/zed-industries/zed/discussions/new/choose";
|
||||||
|
|
||||||
const EMAIL_ZED_URL: &str = "mailto:hi@zed.dev";
|
|
||||||
|
|
||||||
fn file_bug_report_url(specs: &SystemSpecs) -> String {
|
fn file_bug_report_url(specs: &SystemSpecs) -> String {
|
||||||
format!(
|
format!(
|
||||||
concat!(
|
concat!(
|
||||||
|
@ -37,6 +35,18 @@ fn file_bug_report_url(specs: &SystemSpecs) -> String {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn email_zed_url(specs: &SystemSpecs) -> String {
|
||||||
|
format!(
|
||||||
|
concat!("mailto:hi@zed.dev", "?", "body={}"),
|
||||||
|
email_body(specs)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn email_body(specs: &SystemSpecs) -> String {
|
||||||
|
let body = format!("\n\nSystem Information:\n\n{}", specs);
|
||||||
|
urlencoding::encode(&body).to_string()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn init(cx: &mut App) {
|
pub fn init(cx: &mut App) {
|
||||||
cx.observe_new(|workspace: &mut Workspace, window, cx| {
|
cx.observe_new(|workspace: &mut Workspace, window, cx| {
|
||||||
let Some(window) = window else {
|
let Some(window) = window else {
|
||||||
|
@ -79,8 +89,16 @@ pub fn init(cx: &mut App) {
|
||||||
})
|
})
|
||||||
.detach();
|
.detach();
|
||||||
})
|
})
|
||||||
.register_action(move |_, _: &EmailZed, _, cx| {
|
.register_action(move |_, _: &EmailZed, window, cx| {
|
||||||
cx.open_url(EMAIL_ZED_URL);
|
let specs = SystemSpecs::new(window, cx);
|
||||||
|
cx.spawn_in(window, async move |_, cx| {
|
||||||
|
let specs = specs.await;
|
||||||
|
cx.update(|_, cx| {
|
||||||
|
cx.open_url(&email_zed_url(&specs));
|
||||||
|
})
|
||||||
|
.log_err();
|
||||||
|
})
|
||||||
|
.detach();
|
||||||
})
|
})
|
||||||
.register_action(move |_, _: &OpenZedRepo, _, cx| {
|
.register_action(move |_, _: &OpenZedRepo, _, cx| {
|
||||||
cx.open_url(ZED_REPO_URL);
|
cx.open_url(ZED_REPO_URL);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue