agent: Only show the MCP configuration modal in the active window (#32450)

We were previously displaying this modal in all open Zed windows if
triggered. That was a bit annoying because I had to go to each window
individually to close it, which meant doing it multiple times. 😅

Release Notes:

- agent: Fixed the MCP configuration modal to show only in the active
window.
This commit is contained in:
Danilo Leal 2025-06-10 11:34:21 -03:00 committed by GitHub
parent a9d0eee2a9
commit 415d482395
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 12 deletions

View file

@ -554,13 +554,15 @@ impl ExtensionsPage {
)
.child(
h_flex()
.gap_2()
.gap_1()
.justify_between()
.child(
Button::new(
SharedString::from(format!("rebuild-{}", extension.id)),
"Rebuild",
)
.color(Color::Accent)
.disabled(matches!(status, ExtensionStatus::Upgrading))
.on_click({
let extension_id = extension.id.clone();
move |_, _, cx| {
@ -568,12 +570,12 @@ impl ExtensionsPage {
store.rebuild_dev_extension(extension_id.clone(), cx)
});
}
})
.color(Color::Accent)
.disabled(matches!(status, ExtensionStatus::Upgrading)),
}),
)
.child(
Button::new(SharedString::from(extension.id.clone()), "Uninstall")
.color(Color::Accent)
.disabled(matches!(status, ExtensionStatus::Removing))
.on_click({
let extension_id = extension.id.clone();
move |_, _, cx| {
@ -581,9 +583,7 @@ impl ExtensionsPage {
store.uninstall_extension(extension_id.clone(), cx)
});
}
})
.color(Color::Accent)
.disabled(matches!(status, ExtensionStatus::Removing)),
}),
)
.when(can_configure, |this| {
this.child(
@ -591,8 +591,8 @@ impl ExtensionsPage {
SharedString::from(format!("configure-{}", extension.id)),
"Configure",
)
.color(Color::Accent)
.disabled(matches!(status, ExtensionStatus::Installing))
.on_click({
let manifest = Arc::new(extension.clone());
move |_, _, cx| {
@ -609,9 +609,7 @@ impl ExtensionsPage {
});
}
}
})
.color(Color::Accent)
.disabled(matches!(status, ExtensionStatus::Installing)),
}),
)
}),
),