Skip to content

Release v2.6.3#85

Merged
troberts-28 merged 9 commits into
mainfrom
release/v2.6.3
May 4, 2026
Merged

Release v2.6.3#85
troberts-28 merged 9 commits into
mainfrom
release/v2.6.3

Conversation

@troberts-28
Copy link
Copy Markdown
Owner

@troberts-28 troberts-28 commented May 4, 2026

Summary

  • Builds on PR Fix: hourLimit greying logic for PM hours and cross-midnight ranges in 12-hour picker #84 (cross-midnight hourLimit fix) by replacing the extended-range API (max: 29 for 5 AM next day) with a wraparound convention ({ min: 20, max: 5 }). Hours stay in the natural 0-23 range, so picking "01 AM" now reports 1 to onDurationChange rather than 25.
  • Adds an isWithinLimit utility that encapsulates wraparound-aware membership checks; used by both PickerItem (greying) and DurationScroll (snap-back).
  • DurationScroll now snaps out-of-range scrolls to the nearer of min / max (UX upgrade — previously always snapped to min).
  • Restores the Math.min clamp on getAdjustedLimit's max and reinterprets max < min as a meaningful wraparound range rather than invalid input.
  • Adds new PickerItem rendering tests covering greying + selection across normal, wraparound, and non-12h pickers.
  • Modernizes example-expo to Expo SDK 55 / RN 0.83.6 / React 19.2.0, enables the React Compiler experiment (drops manual useCallback/useMemo), and adds a test page exercising the new wraparound hourLimit with a live readout of the reported hour value.
  • Bumps version to 2.6.3 and documents the wraparound convention in the README.

troberts-28 and others added 9 commits March 23, 2026 19:48
Fix: hourLimit greying logic for PM hours and cross-midnight ranges in 12-hour picker
Encapsulates the inclusive `[min, max]` membership check, with support
for wraparound ranges where `max < min` (e.g. `min: 20, max: 5` covers
8 PM through 5 AM next day). Used by the hour picker for cross-midnight
`hourLimit` ranges in the next commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #84 introduced cross-midnight `hourLimit` support by treating values
>= 24 as next-day hours (e.g. `max: 29` for 5 AM next day). That leaked
the implementation detail into `onDurationChange` — picking "01 AM"
returned `25` instead of `1`.

Switch to a `max < min` wraparound convention: `{ min: 20, max: 5 }`
selects 8 PM through 5 AM. Hours stay in their natural 0-23 range
everywhere, including the value reported to consumers, and selectable
hours visibly match the returned value.

- `getAdjustedLimit` re-clamps `max` to `maxValue` and lets `max < min`
  through as meaningful (no longer treated as invalid input).
- `PickerItem` drops the `+= 24` cross-midnight remap and uses
  `isWithinLimit` for the disabled-style check.
- `DurationScroll` snaps out-of-range scrolls to the nearer of `min` /
  `max` (UX upgrade — previously always snapped to `min`).
- New `PickerItem` rendering tests cover greying + selection across
  normal, wraparound, and non-12h pickers.
- README documents the wraparound convention with example.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…t example

- Bump Expo to 55, React Native to 0.83.6, React to 19.2.0.
- Add react-native-worklets, upgrade react-native-audio-api.
- Enable React Compiler experiment; drop manual useCallback/useMemo
  wrappers in App.tsx.
- Drop deprecated app.json fields (newArchEnabled, edgeToEdgeEnabled)
  now defaulted by the SDK.
- Remove unused babel.config.js.
- Add a test page exercising the new wraparound `hourLimit`
  ({ min: 20, max: 5 }) with a live readout of the reported hour value.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@troberts-28 troberts-28 merged commit 9e657fe into main May 4, 2026
1 check passed
@troberts-28 troberts-28 deleted the release/v2.6.3 branch May 4, 2026 18:09
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.

2 participants