Make links in assistant configuration clickable (#17011)

This commit is contained in:
Peter Tripp 2024-08-30 12:50:25 +00:00 committed by GitHub
parent eb7367d8f2
commit d401ab1efc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 40 additions and 10 deletions

View file

@ -538,13 +538,13 @@ impl ConfigurationView {
impl Render for ConfigurationView { impl Render for ConfigurationView {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement { fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {
const ANTHROPIC_CONSOLE_URL: &str = "https://console.anthropic.com/settings/keys";
const INSTRUCTIONS: [&str; 4] = [ const INSTRUCTIONS: [&str; 4] = [
"To use the assistant panel or inline assistant, you need to add your Anthropic API key.", "To use the assistant panel or inline assistant, you need to add your Anthropic API key.",
"You can create an API key at: https://console.anthropic.com/settings/keys", "You can create an API key at:",
"", "",
"Paste your Anthropic API key below and hit enter to use the assistant:", "Paste your Anthropic API key below and hit enter to use the assistant:",
]; ];
let env_var_set = self.state.read(cx).api_key_from_env; let env_var_set = self.state.read(cx).api_key_from_env;
if self.load_credentials_task.is_some() { if self.load_credentials_task.is_some() {
@ -553,9 +553,18 @@ impl Render for ConfigurationView {
v_flex() v_flex()
.size_full() .size_full()
.on_action(cx.listener(Self::save_api_key)) .on_action(cx.listener(Self::save_api_key))
.children( .child(Label::new(INSTRUCTIONS[0]))
INSTRUCTIONS.map(|instruction| Label::new(instruction)), .child(h_flex().child(Label::new(INSTRUCTIONS[1])).child(
Button::new("anthropic_console", ANTHROPIC_CONSOLE_URL)
.style(ButtonStyle::Subtle)
.icon(IconName::ExternalLink)
.icon_size(IconSize::XSmall)
.icon_color(Color::Muted)
.on_click(move |_, cx| cx.open_url(ANTHROPIC_CONSOLE_URL))
)
) )
.child(Label::new(INSTRUCTIONS[2]))
.child(Label::new(INSTRUCTIONS[3]))
.child( .child(
h_flex() h_flex()
.w_full() .w_full()

View file

@ -423,9 +423,10 @@ impl ConfigurationView {
impl Render for ConfigurationView { impl Render for ConfigurationView {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement { fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {
const GOOGLE_CONSOLE_URL: &str = "https://aistudio.google.com/app/apikey";
const INSTRUCTIONS: [&str; 4] = [ const INSTRUCTIONS: [&str; 4] = [
"To use the Google AI assistant, you need to add your Google AI API key.", "To use the Google AI assistant, you need to add your Google AI API key.",
"You can create an API key at: https://makersuite.google.com/app/apikey", "You can create an API key at:",
"", "",
"Paste your Google AI API key below and hit enter to use the assistant:", "Paste your Google AI API key below and hit enter to use the assistant:",
]; ];
@ -438,9 +439,18 @@ impl Render for ConfigurationView {
v_flex() v_flex()
.size_full() .size_full()
.on_action(cx.listener(Self::save_api_key)) .on_action(cx.listener(Self::save_api_key))
.children( .child(Label::new(INSTRUCTIONS[0]))
INSTRUCTIONS.map(|instruction| Label::new(instruction)), .child(h_flex().child(Label::new(INSTRUCTIONS[1])).child(
Button::new("google_console", GOOGLE_CONSOLE_URL)
.style(ButtonStyle::Subtle)
.icon(IconName::ExternalLink)
.icon_size(IconSize::XSmall)
.icon_color(Color::Muted)
.on_click(move |_, cx| cx.open_url(GOOGLE_CONSOLE_URL))
)
) )
.child(Label::new(INSTRUCTIONS[2]))
.child(Label::new(INSTRUCTIONS[3]))
.child( .child(
h_flex() h_flex()
.w_full() .w_full()

View file

@ -480,9 +480,10 @@ impl ConfigurationView {
impl Render for ConfigurationView { impl Render for ConfigurationView {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement { fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {
const OPENAI_CONSOLE_URL: &str = "https://console.anthropic.com/settings/keys";
const INSTRUCTIONS: [&str; 6] = [ const INSTRUCTIONS: [&str; 6] = [
"To use the assistant panel or inline assistant, you need to add your OpenAI API key.", "To use the assistant panel or inline assistant, you need to add your OpenAI API key.",
" - You can create an API key at: platform.openai.com/api-keys", " - You can create an API key at: ",
" - Make sure your OpenAI account has credits", " - Make sure your OpenAI account has credits",
" - Having a subscription for another service like GitHub Copilot won't work.", " - Having a subscription for another service like GitHub Copilot won't work.",
"", "",
@ -497,9 +498,19 @@ impl Render for ConfigurationView {
v_flex() v_flex()
.size_full() .size_full()
.on_action(cx.listener(Self::save_api_key)) .on_action(cx.listener(Self::save_api_key))
.children( .child(Label::new(INSTRUCTIONS[0]))
INSTRUCTIONS.map(|instruction| Label::new(instruction)), .child(h_flex().child(Label::new(INSTRUCTIONS[1])).child(
Button::new("openai_console", OPENAI_CONSOLE_URL)
.style(ButtonStyle::Subtle)
.icon(IconName::ExternalLink)
.icon_size(IconSize::XSmall)
.icon_color(Color::Muted)
.on_click(move |_, cx| cx.open_url(OPENAI_CONSOLE_URL))
)
) )
.children(
(2..INSTRUCTIONS.len()).map(|n|
Label::new(INSTRUCTIONS[n])).collect::<Vec<_>>())
.child( .child(
h_flex() h_flex()
.w_full() .w_full()