Clean up view_release_notes() (#4119)

Joseph T. Lyons created

Forgot to push these changes in my last
[PR](https://github.com/zed-industries/zed/pull/4112).

Release Notes:

- N/A

Change summary

crates/auto_update/src/auto_update.rs         | 30 +++++++++++---------
crates/auto_update/src/update_notification.rs |  4 ++
2 files changed, 19 insertions(+), 15 deletions(-)

Detailed changes

crates/auto_update/src/auto_update.rs 🔗

@@ -93,7 +93,9 @@ pub fn init(http_client: Arc<dyn HttpClient>, server_url: String, cx: &mut AppCo
     cx.observe_new_views(|workspace: &mut Workspace, _cx| {
         workspace.register_action(|_, action: &Check, cx| check(action, cx));
 
-        workspace.register_action(|_, action, cx| view_release_notes(action, cx));
+        workspace.register_action(|_, action, cx| {
+            view_release_notes(action, cx);
+        });
 
         // @nate - code to trigger update notification on launch
         // todo!("remove this when Nate is done")
@@ -140,23 +142,23 @@ pub fn check(_: &Check, cx: &mut WindowContext) {
     }
 }
 
-pub fn view_release_notes(_: &ViewReleaseNotes, cx: &mut AppContext) {
-    if let Some(auto_updater) = AutoUpdater::get(cx) {
+pub fn view_release_notes(_: &ViewReleaseNotes, cx: &mut AppContext) -> Option<()> {
+    let auto_updater = AutoUpdater::get(cx)?;
+    let release_channel = cx.try_global::<ReleaseChannel>()?;
+
+    if matches!(
+        release_channel,
+        ReleaseChannel::Stable | ReleaseChannel::Preview
+    ) {
         let auto_updater = auto_updater.read(cx);
         let server_url = &auto_updater.server_url;
+        let release_channel = release_channel.dev_name();
         let current_version = auto_updater.current_version;
-
-        if let Some(release_channel) = cx.try_global::<ReleaseChannel>() {
-            let channel = match release_channel {
-                ReleaseChannel::Preview => "preview",
-                ReleaseChannel::Stable => "stable",
-                _ => return,
-            };
-            cx.open_url(&format!(
-                "{server_url}/releases/{channel}/{current_version}"
-            ))
-        }
+        let url = format!("{server_url}/releases/{release_channel}/{current_version}");
+        cx.open_url(&url);
     }
+
+    None
 }
 
 pub fn notify_of_any_new_update(cx: &mut ViewContext<Workspace>) -> Option<()> {

crates/auto_update/src/update_notification.rs 🔗

@@ -40,7 +40,9 @@ impl Render for UpdateNotification {
                     .id("notes")
                     .child(Label::new("View the release notes"))
                     .cursor_pointer()
-                    .on_click(|_, cx| crate::view_release_notes(&Default::default(), cx)),
+                    .on_click(|_, cx| {
+                        crate::view_release_notes(&Default::default(), cx);
+                    }),
             )
     }
 }