fix(ui): the permission dialog's primary action was below the fold - #34
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
thinkutils | ebfb285 | Jul 20 2026, 03:28 AM |
Found by looking at a screenshot from the launch test rather than by reading the markup. The action row lived inside .dialog-content, which scrolls. At the app's own 700px minimum window height the content is taller than the available space, so 'Setup Permissions' sat below the fold with nothing indicating it was there -- a first-run user had to discover that a dialog scrolls to find the only button that does anything. The row moves outside the scrolling body and is pinned. Three changes were needed for that to actually hold: .dialog-container becomes a flex column. As a block it pushes the row past max-height instead of holding it in view -- which looks identical in a tall window and breaks in a short one. .dialog-content flexes instead of using calc(90vh - 180px). That calculation guessed at the header and footer heights and was wrong whenever either changed. The row is .dialog-actions, not .dialog-footer. The About dialog already uses .dialog-footer for centred copyright text, and overloading it would have restyled that too. Verified by rebuilding and screenshotting through the container launch test: both buttons are now visible without scrolling. Two tests pin the structure, since this is the kind of thing that looks fine in a maximised window and regresses silently.
vietanhdev
force-pushed
the
fix/dialog-actions-below-fold
branch
from
July 20, 2026 03:25
9a6b9ca to
ebfb285
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Found by looking at a screenshot from the launch test, not by reading markup.
The bug
The action row lived inside
.dialog-content, which scrolls. At the app's own 700px minimum window height the content is taller than the space available — soSetup Permissionssat below the fold with nothing indicating it was there.A first-run user had to discover that a dialog scrolls in order to find the only button that does anything.
Before — scrollbar visible, no buttons:
After — both actions pinned:
Three changes were needed for the fix to hold
.dialog-containerbecomes a flex column. As a block it pushes the row pastmax-heightinstead of holding it in view — which looks identical in a tall window and breaks in a short one..dialog-contentflexes instead ofcalc(90vh - 180px). That calculation guessed at header and footer heights and was wrong whenever either changed..dialog-actions, not.dialog-footer. The About dialog already uses.dialog-footerfor centred copyright text; overloading it would have restyled that too.Verification
Rebuilt the real package and screenshotted through the container launch test. Two tests pin the structure — this is exactly the kind of thing that looks fine in a maximised window and regresses silently.