fix: close Add Project host selector when an SSH credential prompt appears (#8491)

* fix: close Add Project host selector when an SSH credential prompt appears

The SSH password/passphrase dialog (z-50) renders below popovers (z-60),
so a host selector left open during a connect attempt covered the
credential prompt and its input field. Close the selector as soon as a
credential request is queued so the modal prompt is visible and usable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: raise SSH credential prompt above popovers instead of closing the host selector

The credential prompt is a preemptive global modal, but DialogContent's
default z-50 sits below popovers (z-60) and menus (z-70), so any surface
left open while a prompt fires covers the focused password input — the
Add Project host selector was one reproducible case (#8490).

Raise the prompt's overlay/content to the frontmost tier (!z-[140] /
!z-[150], matching link-routing-preference-dialog) so it renders above
every popover/menu, and drop the host-selector close effect: the picker
can stay open and is available again after cancel for an immediate retry.

---------

Co-authored-by: jonghoonlee <jonghoonlee@inocras.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
This commit is contained in:
Jonghoon Lee 2026-07-16 04:45:41 +09:00 committed by GitHub
parent c8986ca52e
commit a381567bab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 1 deletions

View File

@ -110,7 +110,14 @@ export function SshPassphraseDialog(): React.JSX.Element | null {
return (
<Dialog open={open} onOpenChange={(isOpen) => !isOpen && void handleCancel()}>
<DialogContent showCloseButton={false} className="max-w-[360px]">
{/* Why: a credential prompt is a preemptive modal that must sit above any
open popover/menu (popover z-60, menus z-70) the default dialog z-50
would let a still-open picker cover the focused input. */}
<DialogContent
showCloseButton={false}
overlayClassName="!z-[140]"
className="!z-[150] max-w-[360px]"
>
<DialogHeader>
<DialogTitle className="text-sm">
{isPassword