Adjust icon color based on whether the various components are open

This commit is contained in:
Marshall Bowers 2023-10-11 12:09:08 -04:00
parent acf2c2c6a5
commit 382693a199

View file

@ -101,16 +101,19 @@ impl<S: 'static + Send + Sync + Clone> StatusBar<S> {
}
fn left_tools(&self, theme: &Theme) -> impl Element<State = S> {
let workspace_state = get_workspace_state();
div()
.flex()
.items_center()
.gap_1()
.child(
IconButton::new(Icon::FileTree)
.color(IconColor::Accent)
.when(
workspace_state.show_project_panel.load(Ordering::SeqCst),
|this| this.color(IconColor::Accent),
)
.on_click(|_, cx| {
let workspace_state = get_workspace_state();
let is_showing_project_panel =
workspace_state.show_project_panel.load(Ordering::SeqCst);
@ -133,6 +136,8 @@ impl<S: 'static + Send + Sync + Clone> StatusBar<S> {
}
fn right_tools(&self, theme: &Theme) -> impl Element<State = S> {
let workspace_state = get_workspace_state();
div()
.flex()
.items_center()
@ -166,9 +171,13 @@ impl<S: 'static + Send + Sync + Clone> StatusBar<S> {
.flex()
.items_center()
.gap_1()
.child(IconButton::new(Icon::Terminal).on_click(|_, cx| {
let workspace_state = get_workspace_state();
.child(
IconButton::new(Icon::Terminal)
.when(
workspace_state.show_terminal.load(Ordering::SeqCst),
|this| this.color(IconColor::Accent),
)
.on_click(|_, cx| {
let is_showing_terminal =
workspace_state.show_terminal.load(Ordering::SeqCst);
@ -183,10 +192,15 @@ impl<S: 'static + Send + Sync + Clone> StatusBar<S> {
.unwrap();
cx.notify();
}))
.child(IconButton::new(Icon::MessageBubbles).on_click(|_, cx| {
let workspace_state = get_workspace_state();
}),
)
.child(
IconButton::new(Icon::MessageBubbles)
.when(
workspace_state.show_chat_panel.load(Ordering::SeqCst),
|this| this.color(IconColor::Accent),
)
.on_click(|_, cx| {
let is_showing_chat_panel =
workspace_state.show_chat_panel.load(Ordering::SeqCst);
@ -201,7 +215,8 @@ impl<S: 'static + Send + Sync + Clone> StatusBar<S> {
.unwrap();
cx.notify();
}))
}),
)
.child(IconButton::new(Icon::Ai)),
)
}