Repository navigation
Merge the four review fixes that conflicted with main - #153
Merged
Merged
Conversation
setDisplayDate(_:animated: true) waited for scrollViewDidEndScrollingAnimation, which UIKit does not send when the content offset does not change: before the first layout (0 to 0) or for the month already on screen. The delegate never heard about the month and animationTargetMonth stayed set. SwiftUI hit this when an animated update set the display date before layout. Such scrolls now take the non-animated path and notify at once. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…id (CalendarView-win.3) CalendarFlowLayout moved each day into its 7x6 page but kept the flow layout's content size and its choice of cells in a rect. At widths where the flow wraps six days to a row (258 1/3 points, say) the content was not a whole number of pages and days on screen were culled. The layout now derives both from the page grid, invalidates on any size change, falls back to horizontal for unknown directions and measures pages by bounds. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
CalendarDayCell set layer.borderColor with UIColor.cgColor, which resolves a dynamic colour against UITraitCollection.current. applyStyle runs from property observers during cellForItemAt, where that need not be the cell's trait collection, so a dynamic cellBorderColor or cellSelectedBorderColor could show the wrong appearance. Resolve them with the cell's own traitCollection. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…darView-rlq.3) Right to left, the view scaled its collection view by -1 and every cell by -1 again, tracked by _isRtl. The collection view's semanticContentAttribute now follows forceLtr and CalendarFlowLayout mirrors the day columns and, for a horizontal calendar, the month pages. Paging maps sections to pages through the layout. UIKit's flipsHorizontallyInOppositeLayoutDirection does not mirror these hand-built frames, so the layout returns false for it and answers rect queries from its own frames. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Resolved against main: kept both changelog entries and both sets of scrolling tests. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…raits Resolved against main, where win.10 widened the trait registration and rlq.7 moved the cell to a single configuration: kept win.10's registration, resolved the configuration's border colour against the cell's trait collection, and set the test's style through a DayCellConfiguration. The test fails without the fix. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… from the page grid Resolved against main: kept both changelog entries. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…not with transforms Ported onto win.3's page-grid layout, which replaced the code rlq.3 changed: the mirroring (flipsHorizontallyInOppositeLayoutDirection off, mirrored columns, mirroredPage for a horizontal calendar) now lives in the grid's own attributes and rect query, page offsets are measured by bounds, and cellForItemAt no longer sets a transform. The collection view and header are non-optional since rlq.6. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
The last four fixes from the September 2026 review. Orchestra finished them (their beads are closed) but could not merge them because
mainhad moved on; each is merged here in turn with its conflicts resolved, and the tests run after each.Fixes
win.1Animated scrolls that do not move report their month.setDisplayDate(_:animated: true)never calleddidScrollToMonthbefore the first layout or for the month already on screen, since UIKit sends no end-of-animation callback when the offset stays put. SwiftUI'sonScrollToMonthmissed the first month this way.win.8Border colours resolve against the cell's own traits. A dynamiccellBorderColororcellSelectedBorderColorwas resolved against whatever trait collection was current duringcellForItemAt. This complementswin.10(already onmain), which widened when borders are reapplied;win.8fixes what they resolve against.win.3The layout computes its content size and visible cells from the page grid. At sizes that are not a whole number of cells (a width of 258⅓ points, say) the flow layout wrapped six days to a row, the content stopped being a whole number of pages and days on screen went blank.rlq.3Right to left is mirrored in the layout, not with transforms. The collection view and every cell were scaled by -1; the layout now mirrors the week's columns and, for a horizontal calendar, the month pages, and the collection view'ssemanticContentAttributefollowsforceLtr.Conflict resolution worth reviewing
rlq.3was ported rather than merged. It changed the oldCalendarFlowLayout, whichwin.3replaced. Its mirroring (flipsHorizontallyInOppositeLayoutDirectionoff, mirrored columns,mirroredPage) now lives inwin.3's grid attributes and rect query; page offsets are measured bybounds, aswin.3does.win.8was applied to the restructured cell.rlq.7moved the cell to a singleDayCellConfiguration, so the fix is one line inapplyStyle, and its test sets the style through a configuration. The test was confirmed to fail without the fix.Checks
swift-format lint --strict, 140 tests in 7 suites,docbuildfor both schemes and the example app build all pass on this head.With this merged, every child of the
bl0andwinreview epics is onmain.rlq.5(public API tidy-up for 3.0) stays deferred.🤖 Generated with Claude Code