Remove menu tracking state

Mikayla Maki created

Change summary

crates/collab_ui/src/collab_titlebar_item.rs | 62 +++++++++------------
1 file changed, 28 insertions(+), 34 deletions(-)

Detailed changes

crates/collab_ui/src/collab_titlebar_item.rs 🔗

@@ -50,7 +50,6 @@ pub struct CollabTitlebarItem {
     workspace: WeakViewHandle<Workspace>,
     contacts_popover: Option<ViewHandle<ContactsPopover>>,
     user_menu: ViewHandle<ContextMenu>,
-    user_menu_is_visible: bool,
     _subscriptions: Vec<Subscription>,
 }
 
@@ -183,7 +182,6 @@ impl CollabTitlebarItem {
                 menu.set_position_mode(OverlayPositionMode::Local);
                 menu
             }),
-            user_menu_is_visible: false,
             _subscriptions: subscriptions,
         }
     }
@@ -296,35 +294,31 @@ impl CollabTitlebarItem {
     }
 
     pub fn toggle_user_menu(&mut self, _: &ToggleUserMenu, cx: &mut ViewContext<Self>) {
-        if !self.user_menu_is_visible {
-            self.user_menu.update(cx, |user_menu, cx| {
-                let items = if let Some(_) = self.user_store.read(cx).current_user() {
-                    vec![
-                        ContextMenuItem::action("Settings", zed_actions::OpenSettings),
-                        ContextMenuItem::action("Theme", theme_selector::Toggle),
-                        ContextMenuItem::separator(),
-                        ContextMenuItem::action(
-                            "Share Feedback",
-                            feedback::feedback_editor::GiveFeedback,
-                        ),
-                        ContextMenuItem::action("Sign out", SignOut),
-                    ]
-                } else {
-                    vec![
-                        ContextMenuItem::action("Settings", zed_actions::OpenSettings),
-                        ContextMenuItem::action("Theme", theme_selector::Toggle),
-                        ContextMenuItem::separator(),
-                        ContextMenuItem::action(
-                            "Share Feedback",
-                            feedback::feedback_editor::GiveFeedback,
-                        ),
-                    ]
-                };
-
-                user_menu.show(Default::default(), AnchorCorner::TopRight, items, cx);
-            });
-        }
-        self.user_menu_is_visible = !self.user_menu_is_visible;
+        self.user_menu.update(cx, |user_menu, cx| {
+            let items = if let Some(_) = self.user_store.read(cx).current_user() {
+                vec![
+                    ContextMenuItem::action("Settings", zed_actions::OpenSettings),
+                    ContextMenuItem::action("Theme", theme_selector::Toggle),
+                    ContextMenuItem::separator(),
+                    ContextMenuItem::action(
+                        "Share Feedback",
+                        feedback::feedback_editor::GiveFeedback,
+                    ),
+                    ContextMenuItem::action("Sign out", SignOut),
+                ]
+            } else {
+                vec![
+                    ContextMenuItem::action("Settings", zed_actions::OpenSettings),
+                    ContextMenuItem::action("Theme", theme_selector::Toggle),
+                    ContextMenuItem::separator(),
+                    ContextMenuItem::action(
+                        "Share Feedback",
+                        feedback::feedback_editor::GiveFeedback,
+                    ),
+                ]
+            };
+            user_menu.show(Default::default(), AnchorCorner::TopRight, items, cx);
+        });
     }
 
     fn render_toggle_contacts_button(
@@ -701,12 +695,12 @@ impl CollabTitlebarItem {
                 )
                 .contained(),
             )
-            .with_children(self.user_menu_is_visible.then(|| {
+            .with_child(
                 ChildView::new(&self.user_menu, cx)
                     .aligned()
                     .bottom()
-                    .right()
-            }))
+                    .right(),
+            )
             .into_any()
     }