FM-SYNCCAL-IMPORT-SCROLL: scroll the import banner's calendar list (closes #27)#48
Merged
Merged
Conversation
…top-align degraded (closes #27)
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.
Hot fix — operator can't reach calendars below the fold
FM-SYNCCAL-ROOT-FIX (#47) shipped and the Sync Calendar app now opens cleanly. The empty-state import banner correctly enumerates Calendaria's full library (operator's screenshot shows Athasian, Barovian, Cerilian, Drakkenheim, Exandrian, Forbidden Lands, Galifar, Golarion, … 8+ rows). Bug #25 closed by symptom — it was a downstream effect of #26's crash, not its own bug.
New #27 surface: the calendar list overflows the modal but doesn't scroll. Operator can see ~8 calendars; the rest are clipped without a scrollbar. Closes BACKLOG #27.
Root cause
.sync-calendar .import-calendar-listhad nomax-heightand nooverflow-y. Its parent.sync-calendar-degradedisheight: 100% + justify-content: center, so when the list outgrows the container the content clips top + bottom rather than rendering a scrollbar.Fix (1 commit, CSS-only)
Two scoped rules in
styles/sync-calendar-pr3.css:.sync-calendar .import-calendar-list— addedmax-height: 50vh; overflow-y: auto;. The list now scrolls on its own when it outgrows half the viewport. Header (NO CALENDAR IN CHRONICLE YET — IMPORT FROM CALENDARIA) + hint paragraph + Recheck button stay pinned above; only the calendar rows themselves scroll..sync-calendar-degraded:has(.import-banner)— addedjustify-content: flex-start;(optional polish from the dispatch). When the import banner is present, top-align so the heading lands at a predictable position instead of getting clipped at the top from being vertically centered. Bare degraded state (no banner) keeps the base centered layout via the original rule.Net delta: +14 lines including comments. No JS, no template, no i18n changes.
Visual smoke test (per dispatch acceptance)
NoCalendariaCalendarsmessage renders inline; no scrollbar appears (overflow-y: autoonly shows the bar when content overflows).50vhadapts with the viewport; the cap follows the modal's available height.Tests
234 / 234 pass (CSS-only change, no test impact). Run:
node --test tools/test-*.mjsOut of scope (per dispatch)
After merge
This unblocks the end-to-end Calendaria → Chronicle import round-trip test. Once operator confirms they can scroll the full list and pick any calendar, the full 6-PR calendar epic chain (chronicle#316/#319/#320/#321/#322/#323 + chronicle-foundry-module#43/#44/#45/#46/#47) gets its first real smoke test.
Generated by Claude Code