Make links in assistant configuration clickable (#17011)
This commit is contained in:
parent
eb7367d8f2
commit
d401ab1efc
3 changed files with 40 additions and 10 deletions
|
@ -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()
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue