From aebba28fd23506b60486f255c2645e467bc443b6 Mon Sep 17 00:00:00 2001 From: Kevin Turcios Date: Sat, 18 Jul 2026 07:23:12 -0500 Subject: [PATCH] Avoid rendering share modal without a session --- app/src/pane_group/pane/terminal_pane.rs | 12 +++++++----- app/src/terminal/share_block_modal.rs | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/pane_group/pane/terminal_pane.rs b/app/src/pane_group/pane/terminal_pane.rs index 963b276c050..a9f2bc45b89 100644 --- a/app/src/pane_group/pane/terminal_pane.rs +++ b/app/src/pane_group/pane/terminal_pane.rs @@ -971,13 +971,15 @@ fn handle_terminal_view_event( } } Event::ShareModalOpened(block_id) => { + let Some(session) = group.terminal_view_from_pane_id(pane_id, ctx) else { + return; + }; + let model = session.read(ctx, |view, _| view.model.clone()); + group.terminal_with_open_share_block_modal = Some(terminal_pane_id); group.share_block_modal.update(ctx, |share_modal, ctx| { - if let Some(session) = group.terminal_view_from_pane_id(pane_id, ctx) { - let model = session.read(ctx, |view, _| view.model.clone()); - share_modal.open_with_model_update(model, *block_id, ctx); - ctx.notify(); - } + share_modal.open_with_model_update(model, *block_id, ctx); + ctx.notify(); }); ctx.notify(); } diff --git a/app/src/terminal/share_block_modal.rs b/app/src/terminal/share_block_modal.rs index 2501801dde0..3b5e0100c65 100644 --- a/app/src/terminal/share_block_modal.rs +++ b/app/src/terminal/share_block_modal.rs @@ -1023,7 +1023,9 @@ impl ShareBlockModal { .finish() } None => { - log::warn!("Tried to render share modal without a model"); + // The pane group normally prevents this state, but keep the + // fallback quiet if a stale close/open event races a render. + log::debug!("Tried to render share modal without a model"); Empty::new().finish() } };