fix(ui): raise worktree modal z-index above mobile session drawer#463
fix(ui): raise worktree modal z-index above mobile session drawer#463omercnet wants to merge 1 commit into
Conversation
The 'Create worktree' and 'Delete worktree' dialogs in packages/ui/src/components/worktree-selector.tsx were invisible on mobile when opened from inside the session sidebar drawer. The session sidebar is rendered on phones as an MUI <Drawer> at zIndex 60 with width 100vw (see packages/ui/src/components/instance/instance-shell2.tsx around lines 602-626), while the Kobalte Dialog overlays used .modal-overlay (z-index 50) plus a Tailwind z-50 centering wrapper. Because 50 < 60, the full-width drawer completely occluded the modal, so the user could open the create dialog but never see or interact with it. This change raises both dialog overlays to z-[60] and both content-wrapping divs to z-[1310], following the exact precedent already used in packages/ui/src/components/alert-dialog.tsx (lines 117-119) for the same scenario. Only four lines change across two Dialog.Portal blocks; no other class is touched, no shared CSS or token is altered, and no behavior or copy changes. Verification: npm run typecheck (both @codenomad/ui and electron-app workspaces) passes with exit 0. The repository defines no lint script, so typecheck is the available static-analysis gate. Visual mobile retest should confirm the create and delete dialogs are now interactive on top of the open session drawer; desktop behavior is unchanged because nothing else in the app stacks between z-index 50 and 1310 in the same context.
f518eb9 to
e29f440
Compare
|
Hey @omercnet This seems to be fixed with latest develop after recent fixes with drawer closed. |
CI status updateThe only failing check ( All build checks pass ✅ — the FixCommit aa6f54a on this branch increases the polling budget from 30×10s to 90×20s (~30 min effective wait). However, I've opened PR #466 with the same workflow fix targeting This comment was posted by an AI agent (OpenHands) on behalf of the user. |
aa6f54a to
e29f440
Compare
## Problem The `Comment PR Artifacts` workflow consistently times out before the `PR Build Validation` run can complete. The build pipeline typically takes 14–25 minutes (especially the Tauri macOS build), but the comment workflow only polled for ~12 minutes (30 attempts × 10-second intervals plus API overhead). This has been causing the `comment` check to fail on every PR — see PR #463 where it failed 3 consecutive times. ## Fix - Increase polling attempts from **30 → 90** - Increase sleep interval from **10s → 20s** - Effective maximum wait: ~30 minutes of sleep + API overhead ≈ 45+ minutes total This gives ample headroom for the full build matrix to complete, including slower runners like `build-tauri-macos`. ## Why this needs to merge first The `comment-pr-artifacts.yml` workflow uses `pull_request_target`, which means it runs **from the base branch (dev)**, not the PR branch. Changes to this file in PR #463 cannot take effect until this fix lands on `dev`. Once merged, the comment workflow will stop timing out on PR #463 and all future PRs. --- _This PR was created by an AI agent (OpenHands) on behalf of the user to unblock PR #463._ Co-authored-by: openhands <openhands@all-hands.dev>
|
Hi @shantur, thanks for the quick look! I did a careful re-check against current The two interacting layers on
|
|
Would you be able to share screen recording of this issue when running latest develop |
Summary
<Drawer>atzIndex: 60withwidth: 100vw(seepackages/ui/src/components/instance/instance-shell2.tsxaround lines 602–626). The KobalteDialogoverlays inworktree-selector.tsxused.modal-overlay(z-index: 50) plus a Tailwindz-50centering wrapper. Because 50 < 60, the full-width drawer completely occluded the modal.z-[60]and both content-wrapping divs toz-[1310], matching the exact precedent already used bypackages/ui/src/components/alert-dialog.tsx(lines 117–119) for the same scenario.Scope
Dialog.Portalblocks inpackages/ui/src/components/worktree-selector.tsx(create dialog + delete dialog).(applied to both create + delete dialogs)
Verification
npm run typecheck(covers@codenomad/uiand the electron-app workspace) passes with exit 0.lintscript, so typecheck is the available static-analysis gate.Follow-up (not in this PR)
Consider introducing a shared
z-modaldesign token so the magic numbers60/1310aren't duplicated acrossalert-dialog.tsxandworktree-selector.tsx. Out of scope here.