1use action_log::ActionLog;
2use gpui::{App, Entity};
3use notifications::status_toast::StatusToast;
4use ui::prelude::*;
5use workspace::Workspace;
6
7pub fn show_undo_reject_toast(
8 workspace: &mut Workspace,
9 action_log: Entity<ActionLog>,
10 cx: &mut App,
11) {
12 let action_log_weak = action_log.downgrade();
13 let status_toast = StatusToast::new("Agent Changes Rejected", cx, move |this, _cx| {
14 this.icon(
15 Icon::new(IconName::Undo)
16 .size(IconSize::Small)
17 .color(Color::Muted),
18 )
19 .action("Undo", move |_window, cx| {
20 if let Some(action_log) = action_log_weak.upgrade() {
21 action_log
22 .update(cx, |action_log, cx| action_log.undo_last_reject(cx))
23 .detach();
24 }
25 })
26 .dismiss_button(true)
27 });
28 workspace.toggle_status_toast(status_toast, cx);
29}