From fda21232ae47c32e8a491610831bc8aa9ca685a7 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 15 Apr 2024 14:30:53 -0400 Subject: [PATCH] Indicate which extension version is installed when on an older version (#10574) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR adds an indicator to show what extension version is currently installed when on an extension version that is not the latest. Screenshot 2024-04-15 at 2 10 33 PM Release Notes: - Added an indicator to show the currently-installed extension version when not on the latest version. --- crates/extensions_ui/src/extensions_ui.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/crates/extensions_ui/src/extensions_ui.rs b/crates/extensions_ui/src/extensions_ui.rs index b9b7817309191e9f19d98dd0de5fb55e7a775dc2..314a7559d5ed6fd452e306babd71097e58816262 100644 --- a/crates/extensions_ui/src/extensions_ui.rs +++ b/crates/extensions_ui/src/extensions_ui.rs @@ -421,8 +421,14 @@ impl ExtensionsPage { let extension_id = extension.id.clone(); let (install_or_uninstall_button, upgrade_button) = self.buttons_for_entry(extension, &status, cx); + let version = extension.manifest.version.clone(); let repository_url = extension.manifest.repository.clone(); + let installed_version = match status { + ExtensionStatus::Installed(installed_version) => Some(installed_version), + _ => None, + }; + ExtensionCard::new() .child( h_flex() @@ -435,9 +441,14 @@ impl ExtensionsPage { Headline::new(extension.manifest.name.clone()) .size(HeadlineSize::Medium), ) - .child( - Headline::new(format!("v{}", extension.manifest.version)) - .size(HeadlineSize::XSmall), + .child(Headline::new(format!("v{version}")).size(HeadlineSize::XSmall)) + .children( + installed_version + .filter(|installed_version| *installed_version != version) + .map(|installed_version| { + Headline::new(format!("(v{installed_version} installed)",)) + .size(HeadlineSize::XSmall) + }), ), ) .child(