fixup! Move away from using cx.dispatch_action in buffer search

This commit is contained in:
Piotr Osiewicz 2023-12-12 16:38:58 +01:00
parent be57059195
commit 13f9fec0bd
2 changed files with 16 additions and 6 deletions

View file

@ -154,10 +154,21 @@ impl Render for BufferSearchBar {
Some(ui::Label::new(message))
});
let should_show_replace_input = self.replace_enabled && supported_options.replacement;
let replace_all = should_show_replace_input
.then(|| super::render_replace_button(ReplaceAll, ui::Icon::ReplaceAll, "Replace all"));
let replace_all = should_show_replace_input.then(|| {
super::render_replace_button(
ReplaceAll,
ui::Icon::ReplaceAll,
"Replace all",
cx.listener(|this, _, cx| this.replace_all(&ReplaceAll, cx)),
)
});
let replace_next = should_show_replace_input.then(|| {
super::render_replace_button(ReplaceNext, ui::Icon::ReplaceNext, "Replace next")
super::render_replace_button(
ReplaceNext,
ui::Icon::ReplaceNext,
"Replace next",
cx.listener(|this, _, cx| this.replace_next(&ReplaceNext, cx)),
)
});
let in_replace = self.replacement_editor.focus_handle(cx).is_focused(cx);

View file

@ -121,6 +121,7 @@ fn render_replace_button(
action: impl Action + 'static + Send + Sync,
icon: Icon,
tooltip: &'static str,
on_click: impl Fn(&gpui::ClickEvent, &mut WindowContext) + 'static,
) -> impl IntoElement {
let id: SharedString = format!("search-replace-{}", action.name()).into();
IconButton::new(id, icon)
@ -128,7 +129,5 @@ fn render_replace_button(
let action = action.boxed_clone();
move |cx| Tooltip::for_action(tooltip, &*action, cx)
})
.on_click(move |_, cx| {
cx.dispatch_action(action.boxed_clone());
})
.on_click(on_click)
}