From 0ebedbe79fd078b8ae691fdf103a997186802869 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Fri, 14 Feb 2025 15:20:18 +0800 Subject: [PATCH] chrome: Refactor state fields to remove `is_` prefix. (#627) --- crates/story/src/list_story.rs | 8 +++---- crates/story/src/sidebar_story.rs | 26 ++++++++++---------- crates/story/src/table_story.rs | 12 +++++----- crates/ui/src/dock/dock.rs | 16 ++++++------- crates/ui/src/dock/mod.rs | 8 +++---- crates/ui/src/dock/tab_panel.rs | 34 +++++++++++++------------- crates/ui/src/input/input.rs | 10 ++++---- crates/ui/src/popover.rs | 4 ++-- crates/ui/src/sidebar/footer.rs | 8 +++---- crates/ui/src/sidebar/group.rs | 12 +++++----- crates/ui/src/sidebar/header.rs | 8 +++---- crates/ui/src/sidebar/menu.rs | 40 ++++++++++++++----------------- crates/ui/src/sidebar/mod.rs | 22 ++++++++--------- 13 files changed, 102 insertions(+), 106 deletions(-) diff --git a/crates/story/src/list_story.rs b/crates/story/src/list_story.rs index 58a20ebf..2b59300f 100644 --- a/crates/story/src/list_story.rs +++ b/crates/story/src/list_story.rs @@ -147,7 +147,7 @@ struct CompanyListDelegate { confirmed_index: Option, query: String, loading: bool, - is_eof: bool, + eof: bool, } impl ListDelegate for CompanyListDelegate { @@ -208,7 +208,7 @@ impl ListDelegate for CompanyListDelegate { } fn can_load_more(&self, _: &App) -> bool { - return !self.loading && !self.is_eof; + return !self.loading && !self.eof; } fn load_more_threshold(&self) -> usize { @@ -226,7 +226,7 @@ impl ListDelegate for CompanyListDelegate { .companies .extend((0..200).map(|_| random_company())); _ = view.delegate_mut().perform_search(&query, window, cx); - view.delegate_mut().is_eof = view.delegate().companies.len() >= 6000; + view.delegate_mut().eof = view.delegate().companies.len() >= 6000; }); }) .detach(); @@ -281,7 +281,7 @@ impl ListStory { confirmed_index: None, query: "".to_string(), loading: false, - is_eof: false, + eof: false, }; let company_list = cx.new(|cx| List::new(delegate, window, cx)); diff --git a/crates/story/src/sidebar_story.rs b/crates/story/src/sidebar_story.rs index bdb7ecad..7401a454 100644 --- a/crates/story/src/sidebar_story.rs +++ b/crates/story/src/sidebar_story.rs @@ -25,7 +25,7 @@ impl_internal_actions!(sidebar_story, [SelectCompany]); pub struct SidebarStory { active_item: Item, active_subitem: Option, - is_collapsed: bool, + collapsed: bool, side: Side, focus_handle: gpui::FocusHandle, } @@ -39,7 +39,7 @@ impl SidebarStory { Self { active_item: Item::Playground, active_subitem: None, - is_collapsed: false, + collapsed: false, side: Side::Left, focus_handle: cx.focus_handle(), } @@ -231,10 +231,10 @@ impl Render for SidebarStory { .when(self.side.is_right(), |this| this.flex_row_reverse()) .child( sidebar - .collapsed(self.is_collapsed) + .collapsed(self.collapsed) .header( SidebarHeader::new() - .collapsed(self.is_collapsed) + .collapsed(self.collapsed) .w_full() .child( div() @@ -246,17 +246,17 @@ impl Render for SidebarStory { .text_color(white()) .size_8() .flex_shrink_0() - .when(!self.is_collapsed, |this| { + .when(!self.collapsed, |this| { this.child(Icon::new(IconName::GalleryVerticalEnd).size_4()) }) - .when(self.is_collapsed, |this| { + .when(self.collapsed, |this| { this.size_4() .bg(cx.theme().transparent) .text_color(cx.theme().foreground) .child(Icon::new(IconName::GalleryVerticalEnd).size_5()) }), ) - .when(!self.is_collapsed, |this| { + .when(!self.collapsed, |this| { this.child( v_flex() .gap_0() @@ -269,7 +269,7 @@ impl Render for SidebarStory { .child(div().child("Enterprise").text_xs()), ) }) - .when(!self.is_collapsed, |this| { + .when(!self.collapsed, |this| { this.child( Icon::new(IconName::ChevronsUpDown).size_4().flex_shrink_0(), ) @@ -291,15 +291,15 @@ impl Render for SidebarStory { ) .footer( SidebarFooter::new() - .collapsed(self.is_collapsed) + .collapsed(self.collapsed) .justify_between() .child( h_flex() .gap_2() .child(IconName::CircleUser) - .when(!self.is_collapsed, |this| this.child("Jason Lee")), + .when(!self.collapsed, |this| this.child("Jason Lee")), ) - .when(!self.is_collapsed, |this| { + .when(!self.collapsed, |this| { this.child( Icon::new(IconName::ChevronsUpDown).size_4().flex_shrink_0(), ) @@ -362,9 +362,9 @@ impl Render for SidebarStory { .child( SidebarToggleButton::left() .side(self.side) - .collapsed(self.is_collapsed) + .collapsed(self.collapsed) .on_click(cx.listener(|this, _, _, cx| { - this.is_collapsed = !this.is_collapsed; + this.collapsed = !this.collapsed; cx.notify(); })), ) diff --git a/crates/story/src/table_story.rs b/crates/story/src/table_story.rs index ebdf48b7..3905ad70 100644 --- a/crates/story/src/table_story.rs +++ b/crates/story/src/table_story.rs @@ -183,7 +183,7 @@ struct StockTableDelegate { loading: bool, full_loading: bool, fixed_cols: bool, - is_eof: bool, + eof: bool, visible_rows: Range, visible_cols: Range, } @@ -247,7 +247,7 @@ impl StockTableDelegate { fixed_cols: false, loading: false, full_loading: false, - is_eof: false, + eof: false, visible_cols: Range::default(), visible_rows: Range::default(), } @@ -255,7 +255,7 @@ impl StockTableDelegate { fn update_stocks(&mut self, size: usize) { self.stocks = random_stocks(size); - self.is_eof = size <= 50; + self.eof = size <= 50; self.loading = false; self.full_loading = false; } @@ -514,7 +514,7 @@ impl TableDelegate for StockTableDelegate { } fn can_load_more(&self, _: &App) -> bool { - return !self.loading && !self.is_eof; + return !self.loading && !self.eof; } fn load_more_threshold(&self) -> usize { @@ -532,7 +532,7 @@ impl TableDelegate for StockTableDelegate { let _ = view.update(cx, |view, _| { view.delegate_mut().stocks.extend(random_stocks(200)); view.delegate_mut().loading = false; - view.delegate_mut().is_eof = view.delegate().stocks.len() >= 6000; + view.delegate_mut().eof = view.delegate().stocks.len() >= 6000; }); }) }) @@ -927,7 +927,7 @@ impl Render for TableStory { .child(format!("Total Rows: {}", rows_count)) .child(format!("Visible Rows: {:?}", delegate.visible_rows)) .child(format!("Visible Cols: {:?}", delegate.visible_cols)) - .when(delegate.is_eof, |this| this.child("All data loaded.")), + .when(delegate.eof, |this| this.child("All data loaded.")), ), ) .child(self.table.clone()) diff --git a/crates/ui/src/dock/dock.rs b/crates/ui/src/dock/dock.rs index 5ba8190e..a3e3e7dc 100644 --- a/crates/ui/src/dock/dock.rs +++ b/crates/ui/src/dock/dock.rs @@ -74,7 +74,7 @@ pub struct Dock { // Runtime state /// Whether the Dock is resizing - is_resizing: bool, + resizing: bool, } impl Dock { @@ -105,7 +105,7 @@ impl Dock { open: true, collapsible: true, size: px(200.0), - is_resizing: false, + resizing: false, } } @@ -178,7 +178,7 @@ impl Dock { open, size, collapsible: true, - is_resizing: false, + resizing: false, } } @@ -284,13 +284,13 @@ impl Dock { .on_drag(ResizePanel {}, move |info, _, _, cx| { cx.stop_propagation(); view.update(cx, |view, _| { - view.is_resizing = true; + view.resizing = true; }); cx.new(|_| info.deref().clone()) }) } fn resize(&mut self, mouse_position: Point, _: &mut Window, cx: &mut Context) { - if !self.is_resizing { + if !self.resizing { return; } @@ -349,7 +349,7 @@ impl Dock { } fn done_resizing(&mut self, _window: &mut Window, _cx: &mut Context) { - self.is_resizing = false; + self.resizing = false; } } @@ -438,9 +438,9 @@ impl Element for DockElement { ) { window.on_mouse_event({ let view = self.view.clone(); - let is_resizing = view.read(cx).is_resizing; + let resizing = view.read(cx).resizing; move |e: &MouseMoveEvent, phase, window, cx| { - if !is_resizing { + if !resizing { return; } if !phase.bubble() { diff --git a/crates/ui/src/dock/mod.rs b/crates/ui/src/dock/mod.rs index aa2416dc..27a5798d 100644 --- a/crates/ui/src/dock/mod.rs +++ b/crates/ui/src/dock/mod.rs @@ -58,7 +58,7 @@ pub struct DockArea { zoom_view: Option, /// Lock panels layout, but allow to resize. - is_locked: bool, + locked: bool, /// The panel style, default is [`PanelStyle::Default`](PanelStyle::Default). pub(crate) panel_style: PanelStyle, @@ -408,7 +408,7 @@ impl DockArea { left_dock: None, right_dock: None, bottom_dock: None, - is_locked: false, + locked: false, panel_style: PanelStyle::Default, _subscriptions: vec![], }; @@ -514,12 +514,12 @@ impl DockArea { /// Set locked state of the dock area, if locked, the dock area cannot be split or move, but allows to resize panels. pub fn set_locked(&mut self, locked: bool, _window: &mut Window, _cx: &mut App) { - self.is_locked = locked; + self.locked = locked; } /// Determine if the dock area is locked. pub fn is_locked(&self) -> bool { - self.is_locked + self.locked } /// Determine if the dock area has a dock at the given placement. diff --git a/crates/ui/src/dock/tab_panel.rs b/crates/ui/src/dock/tab_panel.rs index 5a26d563..1967d5ce 100644 --- a/crates/ui/src/dock/tab_panel.rs +++ b/crates/ui/src/dock/tab_panel.rs @@ -75,8 +75,8 @@ pub struct TabPanel { pub(crate) closable: bool, tab_bar_scroll_handle: ScrollHandle, - is_zoomed: bool, - is_collapsed: bool, + zoomed: bool, + collapsed: bool, /// When drag move, will get the placement of the panel to be split will_split_placement: Option, } @@ -153,8 +153,8 @@ impl TabPanel { active_ix: 0, tab_bar_scroll_handle: ScrollHandle::new(), will_split_placement: None, - is_zoomed: false, - is_collapsed: false, + zoomed: false, + collapsed: false, closable: true, } } @@ -340,7 +340,7 @@ impl TabPanel { _: &mut Window, cx: &mut Context, ) { - self.is_collapsed = collapsed; + self.collapsed = collapsed; cx.notify(); } @@ -353,7 +353,7 @@ impl TabPanel { return true; } - if self.is_zoomed { + if self.zoomed { return true; } @@ -404,7 +404,7 @@ impl TabPanel { window: &mut Window, cx: &mut Context, ) -> impl IntoElement { - let is_zoomed = self.is_zoomed; + let zoomed = self.zoomed; let view = cx.entity().clone(); let zoomable_toolbar_visible = state.zoomable.map_or(false, |v| v.toolbar_visible()); @@ -417,7 +417,7 @@ impl TabPanel { this.children(buttons.into_iter().map(|btn| btn.xsmall().ghost())) }) .map(|this| { - let value = if is_zoomed { + let value = if zoomed { Some(("zoom-out", IconName::Minimize, t!("Dock.Zoom Out"))) } else if zoomable_toolbar_visible { Some(("zoom-in", IconName::Maximize, t!("Dock.Zoom In"))) @@ -453,7 +453,7 @@ impl TabPanel { view.read(cx) .popup_menu(this, window, cx) .when(zoomable, |this| { - let name = if is_zoomed { + let name = if zoomed { t!("Dock.Zoom Out") } else { t!("Dock.Zoom In") @@ -476,7 +476,7 @@ impl TabPanel { _: &mut Window, cx: &mut Context, ) -> Option { - if self.is_zoomed { + if self.zoomed { return None; } @@ -662,14 +662,14 @@ impl TabPanel { ) .children(self.panels.iter().enumerate().filter_map(|(ix, panel)| { let mut active = state.active_panel.as_ref() == Some(panel); - let disabled = self.is_collapsed; + let disabled = self.collapsed; if !panel.visible(cx) { return None; } // Always not show active tab style, if the panel is collapsed - if self.is_collapsed { + if self.collapsed { active = false; } @@ -758,7 +758,7 @@ impl TabPanel { _: &mut Window, cx: &mut Context, ) -> impl IntoElement { - if self.is_collapsed { + if self.collapsed { return Empty {}.into_any_element(); } @@ -1026,19 +1026,19 @@ impl TabPanel { return; } - if !self.is_zoomed { + if !self.zoomed { cx.emit(PanelEvent::ZoomIn) } else { cx.emit(PanelEvent::ZoomOut) } - self.is_zoomed = !self.is_zoomed; + self.zoomed = !self.zoomed; cx.spawn_in(window, |view, mut cx| { - let is_zoomed = self.is_zoomed; + let zoomed = self.zoomed; async move { _ = cx.update(|window, cx| { _ = view.update(cx, |view, cx| { - view.set_zoomed(is_zoomed, window, cx); + view.set_zoomed(zoomed, window, cx); }); }); } diff --git a/crates/ui/src/input/input.rs b/crates/ui/src/input/input.rs index 2dcab388..b5140d89 100644 --- a/crates/ui/src/input/input.rs +++ b/crates/ui/src/input/input.rs @@ -216,7 +216,7 @@ pub struct TextInput { /// The text bounds pub(super) last_bounds: Option>, pub(super) last_selected_range: Option>, - pub(super) is_selecting: bool, + pub(super) selecting: bool, pub(super) disabled: bool, pub(super) masked: bool, pub(super) appearance: bool, @@ -272,7 +272,7 @@ impl TextInput { selection_reversed: false, marked_range: None, input_bounds: Bounds::default(), - is_selecting: false, + selecting: false, disabled: false, masked: false, appearance: true, @@ -936,7 +936,7 @@ impl TextInput { window: &mut Window, cx: &mut Context, ) { - self.is_selecting = true; + self.selecting = true; let offset = self.index_for_mouse_position(event.position, window, cx); // Double click to select word if event.button == MouseButton::Left && event.click_count == 2 { @@ -952,7 +952,7 @@ impl TextInput { } fn on_mouse_up(&mut self, _: &MouseUpEvent, _window: &mut Window, _cx: &mut Context) { - self.is_selecting = false; + self.selecting = false; self.selected_word_range = None; } @@ -1364,7 +1364,7 @@ impl TextInput { return; } - if !self.is_selecting { + if !self.selecting { return; } diff --git a/crates/ui/src/popover.rs b/crates/ui/src/popover.rs index 8a45cd57..166d842d 100644 --- a/crates/ui/src/popover.rs +++ b/crates/ui/src/popover.rs @@ -139,12 +139,12 @@ where self } - fn render_trigger(&mut self, is_open: bool, window: &mut Window, cx: &mut App) -> AnyElement { + fn render_trigger(&mut self, open: bool, window: &mut Window, cx: &mut App) -> AnyElement { let Some(trigger) = self.trigger.take() else { return div().into_any_element(); }; - (trigger)(is_open, window, cx) + (trigger)(open, window, cx) } fn resolved_corner(&self, bounds: Bounds) -> Point { diff --git a/crates/ui/src/sidebar/footer.rs b/crates/ui/src/sidebar/footer.rs index 18f9133f..c2a6ddb5 100644 --- a/crates/ui/src/sidebar/footer.rs +++ b/crates/ui/src/sidebar/footer.rs @@ -10,7 +10,7 @@ pub struct SidebarFooter { id: ElementId, base: Div, selected: bool, - is_collapsed: bool, + collapsed: bool, } impl SidebarFooter { @@ -19,7 +19,7 @@ impl SidebarFooter { id: SharedString::from("sidebar-footer").into(), base: h_flex().gap_2().w_full(), selected: false, - is_collapsed: false, + collapsed: false, } } } @@ -35,11 +35,11 @@ impl Selectable for SidebarFooter { } impl Collapsible for SidebarFooter { fn is_collapsed(&self) -> bool { - self.is_collapsed + self.collapsed } fn collapsed(mut self, collapsed: bool) -> Self { - self.is_collapsed = collapsed; + self.collapsed = collapsed; self } } diff --git a/crates/ui/src/sidebar/group.rs b/crates/ui/src/sidebar/group.rs index 08a412a5..26463bae 100644 --- a/crates/ui/src/sidebar/group.rs +++ b/crates/ui/src/sidebar/group.rs @@ -9,7 +9,7 @@ use gpui::{ pub struct SidebarGroup { base: Div, label: SharedString, - is_collapsed: bool, + collapsed: bool, children: Vec, } @@ -18,7 +18,7 @@ impl SidebarGroup { Self { base: div().gap_2().flex_col(), label: label.into(), - is_collapsed: false, + collapsed: false, children: Vec::new(), } } @@ -35,11 +35,11 @@ impl SidebarGroup { } impl Collapsible for SidebarGroup { fn is_collapsed(&self) -> bool { - self.is_collapsed + self.collapsed } fn collapsed(mut self, collapsed: bool) -> Self { - self.is_collapsed = collapsed; + self.collapsed = collapsed; self } } @@ -48,7 +48,7 @@ impl RenderOnce for SidebarGroup { v_flex() .relative() .p_2() - .when(!self.is_collapsed, |this| { + .when(!self.collapsed, |this| { this.child( div() .flex_shrink_0() @@ -64,7 +64,7 @@ impl RenderOnce for SidebarGroup { self.base.children( self.children .into_iter() - .map(|child| child.collapsed(self.is_collapsed)), + .map(|child| child.collapsed(self.collapsed)), ), ) } diff --git a/crates/ui/src/sidebar/header.rs b/crates/ui/src/sidebar/header.rs index 693ec292..9486cc65 100644 --- a/crates/ui/src/sidebar/header.rs +++ b/crates/ui/src/sidebar/header.rs @@ -10,7 +10,7 @@ pub struct SidebarHeader { id: ElementId, base: Div, selected: bool, - is_collapsed: bool, + collapsed: bool, } impl SidebarHeader { @@ -19,7 +19,7 @@ impl SidebarHeader { id: SharedString::from("sidebar-header").into(), base: h_flex().gap_2().w_full(), selected: false, - is_collapsed: false, + collapsed: false, } } } @@ -35,11 +35,11 @@ impl Selectable for SidebarHeader { } impl Collapsible for SidebarHeader { fn is_collapsed(&self) -> bool { - self.is_collapsed + self.collapsed } fn collapsed(mut self, collapsed: bool) -> Self { - self.is_collapsed = collapsed; + self.collapsed = collapsed; self } } diff --git a/crates/ui/src/sidebar/menu.rs b/crates/ui/src/sidebar/menu.rs index ebb2c1ed..e938e7ee 100644 --- a/crates/ui/src/sidebar/menu.rs +++ b/crates/ui/src/sidebar/menu.rs @@ -8,7 +8,7 @@ use std::rc::Rc; #[derive(IntoElement)] pub struct SidebarMenu { - is_collapsed: bool, + collapsed: bool, items: Vec, } @@ -16,7 +16,7 @@ impl SidebarMenu { pub fn new() -> Self { Self { items: Vec::new(), - is_collapsed: false, + collapsed: false, } } @@ -32,7 +32,7 @@ impl SidebarMenu { label: label.into(), handler: Rc::new(handler), active, - is_collapsed: self.is_collapsed, + collapsed: self.collapsed, }); self } @@ -51,8 +51,8 @@ impl SidebarMenu { icon, label: label.into(), items: menu.items, - is_open: open, - is_collapsed: self.is_collapsed, + open, + collapsed: self.collapsed, handler: Rc::new(handler), }); self @@ -60,11 +60,11 @@ impl SidebarMenu { } impl Collapsible for SidebarMenu { fn is_collapsed(&self) -> bool { - self.is_collapsed + self.collapsed } fn collapsed(mut self, collapsed: bool) -> Self { - self.is_collapsed = collapsed; + self.collapsed = collapsed; self } } @@ -74,10 +74,8 @@ impl RenderOnce for SidebarMenu { .gap_2() .children(self.items.into_iter().map(|mut item| { match &mut item { - SidebarMenuItem::Item { is_collapsed, .. } => *is_collapsed = self.is_collapsed, - SidebarMenuItem::Submenu { is_collapsed, .. } => { - *is_collapsed = self.is_collapsed - } + SidebarMenuItem::Item { collapsed, .. } => *collapsed = self.collapsed, + SidebarMenuItem::Submenu { collapsed, .. } => *collapsed = self.collapsed, } item })) @@ -92,15 +90,15 @@ enum SidebarMenuItem { label: SharedString, handler: Rc, active: bool, - is_collapsed: bool, + collapsed: bool, }, Submenu { icon: Option, label: SharedString, handler: Rc, items: Vec, - is_open: bool, - is_collapsed: bool, + open: bool, + collapsed: bool, }, } @@ -133,16 +131,16 @@ impl SidebarMenuItem { fn is_open(&self) -> bool { match self { SidebarMenuItem::Item { .. } => false, - SidebarMenuItem::Submenu { is_open, items, .. } => { - *is_open || items.iter().any(|item| item.is_active()) + SidebarMenuItem::Submenu { open, items, .. } => { + *open || items.iter().any(|item| item.is_active()) } } } fn is_collapsed(&self) -> bool { match self { - SidebarMenuItem::Item { is_collapsed, .. } => *is_collapsed, - SidebarMenuItem::Submenu { is_collapsed, .. } => *is_collapsed, + SidebarMenuItem::Item { collapsed, .. } => *collapsed, + SidebarMenuItem::Submenu { collapsed, .. } => *collapsed, } } @@ -212,11 +210,9 @@ impl RenderOnce for SidebarMenuItem { .when(is_open, |this| { this.map(|this| match self { SidebarMenuItem::Submenu { - items, - is_collapsed, - .. + items, collapsed, .. } => { - if is_collapsed { + if collapsed { this } else { this.child( diff --git a/crates/ui/src/sidebar/mod.rs b/crates/ui/src/sidebar/mod.rs index 43d177a8..f9591ae3 100644 --- a/crates/ui/src/sidebar/mod.rs +++ b/crates/ui/src/sidebar/mod.rs @@ -37,7 +37,7 @@ pub struct Sidebar { side: Side, collapsible: bool, width: Pixels, - is_collapsed: bool, + collapsed: bool, } impl Sidebar { @@ -50,7 +50,7 @@ impl Sidebar { side, collapsible: true, width: DEFAULT_WIDTH, - is_collapsed: false, + collapsed: false, } } @@ -76,7 +76,7 @@ impl Sidebar { /// Set the sidebar to be collapsed pub fn collapsed(mut self, collapsed: bool) -> Self { - self.is_collapsed = collapsed; + self.collapsed = collapsed; self } @@ -109,7 +109,7 @@ impl Sidebar { #[derive(IntoElement)] pub struct SidebarToggleButton { btn: Button, - is_collapsed: bool, + collapsed: bool, side: Side, on_click: Option>, } @@ -118,7 +118,7 @@ impl SidebarToggleButton { fn new(side: Side) -> Self { Self { btn: Button::new("sidebar-collapse").ghost().small(), - is_collapsed: false, + collapsed: false, side, on_click: None, } @@ -137,8 +137,8 @@ impl SidebarToggleButton { self } - pub fn collapsed(mut self, is_collapsed: bool) -> Self { - self.is_collapsed = is_collapsed; + pub fn collapsed(mut self, collapsed: bool) -> Self { + self.collapsed = collapsed; self } @@ -153,10 +153,10 @@ impl SidebarToggleButton { impl RenderOnce for SidebarToggleButton { fn render(self, _window: &mut Window, _cx: &mut App) -> impl IntoElement { - let is_collapsed = self.is_collapsed; + let collapsed = self.collapsed; let on_click = self.on_click.clone(); - let icon = if is_collapsed { + let icon = if collapsed { if self.side.is_left() { IconName::PanelLeftOpen } else { @@ -182,11 +182,11 @@ impl RenderOnce for SidebarToggleButton { impl RenderOnce for Sidebar { fn render(mut self, _: &mut Window, cx: &mut App) -> impl IntoElement { - let is_collapsed = self.is_collapsed; + let is_collapsed = self.collapsed; v_flex() .id("sidebar") .w(self.width) - .when(self.is_collapsed, |this| this.w(COLLAPSED_WIDTH)) + .when(self.collapsed, |this| this.w(COLLAPSED_WIDTH)) .flex_shrink_0() .h_full() .overflow_hidden()