From 95e532c56dc948d84487f141a5234a3b3006c4e5 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Mon, 4 Mar 2024 14:38:28 -0500 Subject: [PATCH] Add option to sign in to copilot from welcome screen (#8853) Fixes: https://github.com/zed-industries/zed/issues/8851 https://github.com/zed-industries/zed/assets/19867440/5d391289-34e8-4abc-9337-b7e253f4e513 Release Notes: - Added GitHub Copilot sign in on welcome screen ([#8851](https://github.com/zed-industries/zed/issues/8851)). --- Cargo.lock | 1 + crates/copilot_ui/src/copilot_button.rs | 2 +- crates/copilot_ui/src/copilot_ui.rs | 2 +- crates/welcome/Cargo.toml | 1 + crates/welcome/src/welcome.rs | 11 +++++++++++ 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e7864f9b9..37684379a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11937,6 +11937,7 @@ version = "0.1.0" dependencies = [ "anyhow", "client", + "copilot_ui", "db", "editor", "fuzzy", diff --git a/crates/copilot_ui/src/copilot_button.rs b/crates/copilot_ui/src/copilot_button.rs index dca7411388..afc39c3d19 100644 --- a/crates/copilot_ui/src/copilot_button.rs +++ b/crates/copilot_ui/src/copilot_button.rs @@ -332,7 +332,7 @@ fn hide_copilot(fs: Arc, cx: &mut AppContext) { }); } -fn initiate_sign_in(cx: &mut WindowContext) { +pub fn initiate_sign_in(cx: &mut WindowContext) { let Some(copilot) = Copilot::global(cx) else { return; }; diff --git a/crates/copilot_ui/src/copilot_ui.rs b/crates/copilot_ui/src/copilot_ui.rs index 64dd068d5a..f55090ebcb 100644 --- a/crates/copilot_ui/src/copilot_ui.rs +++ b/crates/copilot_ui/src/copilot_ui.rs @@ -1,4 +1,4 @@ -mod copilot_button; +pub mod copilot_button; mod sign_in; pub use copilot_button::*; diff --git a/crates/welcome/Cargo.toml b/crates/welcome/Cargo.toml index e958bf26ff..2200db8bbd 100644 --- a/crates/welcome/Cargo.toml +++ b/crates/welcome/Cargo.toml @@ -14,6 +14,7 @@ test-support = [] [dependencies] anyhow.workspace = true client.workspace = true +copilot_ui.workspace = true db.workspace = true fuzzy.workspace = true gpui.workspace = true diff --git a/crates/welcome/src/welcome.rs b/crates/welcome/src/welcome.rs index 9a97fde6c3..01ffe2a166 100644 --- a/crates/welcome/src/welcome.rs +++ b/crates/welcome/src/welcome.rs @@ -2,6 +2,7 @@ mod base_keymap_picker; mod base_keymap_setting; use client::{telemetry::Telemetry, TelemetrySettings}; +use copilot_ui; use db::kvp::KEY_VALUE_STORE; use gpui::{ svg, AnyElement, AppContext, EventEmitter, FocusHandle, FocusableView, InteractiveElement, @@ -134,6 +135,16 @@ impl Render for WelcomePage { }) .detach_and_log_err(cx); })), + ) + .child( + Button::new("sign-in-to-copilot", "Sign in to GitHub Copilot") + .full_width() + .on_click(cx.listener(|this, _, cx| { + this.telemetry.report_app_event( + "welcome page: sign in to copilot".to_string(), + ); + copilot_ui::initiate_sign_in(cx); + })), ), ) .child(