Skip to content

fix(admin): keep the Regenerate-Secret button reachable in the client modal#110

Merged
windischb merged 1 commit into
developfrom
fix/client-modal-regen-button-hidden
Jul 1, 2026
Merged

fix(admin): keep the Regenerate-Secret button reachable in the client modal#110
windischb merged 1 commit into
developfrom
fix/client-modal-regen-button-hidden

Conversation

@windischb

Copy link
Copy Markdown
Contributor

Problem

In the OAuth-client modal, the Regenerate Secret button (bottom of the left
"General" column) was hidden at a real 100% zoom — you couldn't scroll to it, and
it only reappeared when zooming the browser out. Reported by an operator setting
up a live instance.

Root cause — two stacked layout bugs in .col-identity

The left column is an independent scroll region (a flex column inside a CSS-grid
.two-col):

  1. Grid row unbounded. .two-col had grid-template-columns but no rows
    track, so the single implicit row was auto and sized to the taller (right)
    column's content — overgrowing the modal body. The left column then never
    scrolled and its bottom slid under the sticky footer.
  2. Flex crushed the button. As a flex column, an overflowing .col-identity
    shrinks its most-shrinkable child. The button (overflow:hidden → 0
    min-height) was that child, so it collapsed to height:0 and vanished —
    reappearing only when zoomed out far enough to stop the overflow.

Fix (CSS only, ClientDetails.vue)

  • .two-col { grid-template-rows: minmax(0, 1fr); } — bind the row so each
    column scrolls within the modal height.
  • .col-identity > * { flex-shrink: 0; } — a scroll container's children keep
    their natural height instead of being crushed.
  • small padding-bottom so the last control clears the scroll edge.

Verification

chrome-devtools, live: the button now renders at full height (32px), is reachable
by scrolling the column, and sits above the footer (measured + screenshot).
pnpm type-check + pnpm build green. Localised to the client modal — other
admin modals use a different (tabbed) scroll pattern.

🤖 Generated with Claude Code

… modal

The OAuth-client modal's left "General" column is an independent scroll
region (`.col-identity`, a flex column). Two layout bugs hid the
Regenerate-Secret button — its last child — at a real (100%) zoom:

1. `.two-col` is a CSS grid with no explicit rows track, so the single
   implicit row was `auto` and sized to the taller (right) column's
   content, overgrowing the modal body. The left column then never
   scrolled and its bottom slid under the sticky footer. Fixed with
   `grid-template-rows: minmax(0, 1fr)` so each column scrolls within the
   modal height.
2. As a flex column, an overflowing `.col-identity` shrinks its most
   shrinkable child to fit. The button (`overflow:hidden` → 0 min-height)
   was that child, so it collapsed to `height:0` and vanished — only
   reappearing when zoomed out far enough to stop the overflow. Fixed by
   pinning the column's children to `flex-shrink: 0` so the column scrolls
   instead of crushing them.

Verified live: the button now renders at full height, is reachable by
scrolling the column, and sits above the footer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@windischb windischb merged commit e197e5c into develop Jul 1, 2026
8 checks passed
@windischb windischb deleted the fix/client-modal-regen-button-hidden branch July 1, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant