Skip to content

Close the remaining open issues: range selection, per-day styles, default month - #149

Merged
mmick66 merged 1 commit into
masterfrom
close-open-issues
Sep 8, 2026
Merged

mmick66 merged 1 commit into
masterfrom
close-open-issues

Conversation

@mmick66

@mmick66 mmick66 commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

Follows up #148 by checking every open issue against the modernized code and fixing the ones it did not cover. One commit.

Fixed here

Already fixed by #148, confirmed against the code

#100, #106, #108, #109, #110, #112, #114, #115, #120, #126, #127, #129, #130, #131, #132, #134, #138, #140, #142, #147.

Not library problems

#139 is a network timeout cloning from GitHub. #116 is a force-unwrapped outlet in the reporter's own view controller.

With this merged, every open issue is either fixed or outside the library's control.

Demo

The default tab greys out Sundays and colours the 15th through styleForDate; the SwiftUI tab has a single/multiple/range picker.

Classic style, default style with disabled Sundays, SwiftUI wrapper with the range picker, dark mode

Test plan

  • xcodebuild -scheme KDCalendar-Package -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.5' test — 65 tests in 3 suites pass
  • Example app runs on the iPhone 17 Pro (iOS 26.5) simulator, all three tabs, light and dark
  • xcodebuild docbuild clean
  • xcrun swift-format lint --strict --recursive Sources Tests Example/KDCalendarDemo clean

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ubk2MsmduPdDLM7FZXFU8C

Every open issue was checked against the branch; the ones the earlier
phases did not cover are addressed here.

- Range selection (#32): selectionMode with .single, .multiple and
  .range, selectRange(_:), and didSelectRange on the delegate. In range
  mode the first tap picks one end and the second fills every selectable
  day between them, in either order and across months; a third tap
  starts over and tapping a selected day clears the range. Days that
  canSelectDate refuses or that lie outside the data source are skipped.
  multipleSelectionEnable maps to the first two modes. The SwiftUI
  wrapper gains selectionMode(_:).
- Per-day styles (#136, #122): calendar(_:styleForDate:) on the delegate
  returns a Style for one day or nil for the calendar's own. Together
  with canSelectDate it greys out days the user must not pick. The
  SwiftUI wrapper gains styleForDate(_:).
- No data source (#135): the view shows the current month instead of
  nothing, which is what the README always promised.
- Tests pinning #117 (a style's cellFont reaches the cells) and #128 (a
  frame shorter than the header neither asserts nor produces a zero item
  size).
- Demo: the default tab greys out Sundays and colours the 15th; the
  SwiftUI tab has a single/multiple/range picker and a "Select this
  week" button. README and CHANGELOG updated; Assets/demo.png refreshed.
- 65 tests in three suites, lint and docbuild clean.

Not fixable in code: #139 is a network timeout cloning from GitHub, #116
is a force-unwrapped outlet in the reporter's own view controller.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubk2MsmduPdDLM7FZXFU8C
@mmick66
mmick66 merged commit 6759add into master Sep 8, 2026
2 checks passed
@mmick66
mmick66 deleted the close-open-issues branch September 8, 2026 09:51
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