Dismiss Agent Onboarding banner when creating a new thread/text thread

This commit is contained in:
Anthony 2025-08-25 21:29:22 -04:00
parent d8276cd661
commit a4a1be576c

View file

@ -300,7 +300,10 @@ impl ActiveView {
MessageEditorEvent::Changed | MessageEditorEvent::EstimatedTokenCount => {
cx.notify();
}
MessageEditorEvent::DismissOnboarding => {}
MessageEditorEvent::DismissOnboarding => {
OnboardingUpsell::set_dismissed(true, cx);
cx.notify();
}
MessageEditorEvent::ScrollThreadToBottom => match &this.active_view {
ActiveView::Thread { thread, .. } => {
thread.update(cx, |thread, cx| {
@ -656,32 +659,6 @@ impl AgentPanel {
)
});
let message_editor = cx.new(|cx| {
MessageEditor::new(
fs.clone(),
workspace.clone(),
message_editor_context_store.clone(),
prompt_store.clone(),
thread_store.downgrade(),
context_store.downgrade(),
Some(history_store.downgrade()),
thread.clone(),
window,
cx,
)
});
cx.subscribe(&message_editor, |_, _, event, cx| match event {
// todo!: I don't like how this is writing to the db everything time the user types
//this also doens't work for text threads and newly openned threads??
MessageEditorEvent::DismissOnboarding => {
OnboardingUpsell::set_dismissed(true, cx);
cx.notify();
}
_ => {}
})
.detach();
let acp_history_store = cx.new(|cx| agent2::HistoryStore::new(context_store.clone(), cx));
let acp_history = cx.new(|cx| AcpThreadHistory::new(acp_history_store.clone(), window, cx));
cx.subscribe_in(
@ -722,7 +699,24 @@ impl AgentPanel {
let panel_type = AgentSettings::get_global(cx).default_view;
let active_view = match panel_type {
DefaultView::Thread => ActiveView::thread(active_thread, message_editor, window, cx),
DefaultView::Thread => {
let message_editor = cx.new(|cx| {
MessageEditor::new(
fs.clone(),
workspace.clone(),
message_editor_context_store.clone(),
prompt_store.clone(),
thread_store.downgrade(),
context_store.downgrade(),
Some(history_store.downgrade()),
thread.clone(),
window,
cx,
)
});
ActiveView::thread(active_thread, message_editor, window, cx)
}
DefaultView::TextThread => {
let context =
context_store.update(cx, |context_store, cx| context_store.create(cx));
@ -1869,6 +1863,8 @@ impl AgentPanel {
window: &mut Window,
cx: &mut Context<Self>,
) {
OnboardingUpsell::set_dismissed(true, cx);
match agent {
AgentType::Zed => {
window.dispatch_action(