Summary
After publishing @cyberlz/react-date-range@1.0.0, we audited upstream PRs/issues against the current fork codebase to avoid assuming old upstream bugs still reproduce after the modernization work.
This issue tracks the post-1.0 reproducibility classification:
- Reproducible bug → candidate for
1.0.1+
- Verified resolved / not reproducible → no immediate action
- Nice-to-have / feature → backlog only, requires separate proposal or design decision
Related index issue: #1
Reproducible bugs in current code
| Upstream |
Classification |
Current evidence |
Recommended action |
| hypeserver/react-date-range#523 |
Reproducible bug |
src/defaultRanges.js computes startOfWeek(new Date()) / endOfWeek(new Date()) at module load without weekStartsOn; DefinedRange static ranges therefore ignore runtime weekStartsOn. |
Create 1.0.1 bugfix candidate. Refactor default ranges to accept week options or generate ranges from props. |
| hypeserver/react-date-range#353 / #504 / #575 |
Reproducible bug |
src/utils.js::findNextRangeIndex(ranges, ...) calls ranges.findIndex(...) without guarding ranges; undefined, null, or non-array values crash. |
High-priority low-risk fix. Add Array.isArray(ranges) guard and regression tests. |
| hypeserver/react-date-range#360 + hypeserver/react-date-range#402 |
Reproducible bug |
src/components/DayCell/index.jsx marks days in range with `(!startDate |
|
Not reproducible / verified resolved
| Upstream |
Classification |
Evidence |
| hypeserver/react-date-range#614 |
Not reproducible |
No getAttribute calls exist in current src/ or dist/; keyboard navigation uses element.dataset.date. |
| hypeserver/react-date-range#454 |
Verified resolved |
showMonthAndYearPickers?: boolean exists in src/index.d.ts; Calendar supports it; npm run type-check passes. |
| hypeserver/react-date-range#625 |
Verified resolved |
Equivalent callback exists as onShownDateChange, typed and called in Calendar scroll/date navigation paths. |
| hypeserver/react-date-range#632 |
Verified resolved |
Current scroll options are typed and implemented through virtualized scrolling config. |
| hypeserver/react-date-range#516 |
Verified resolved |
Equivalent behavior exists as preventSnapRefocus, typed and implemented in Calendar focus logic. |
| hypeserver/react-date-range#443 |
Verified resolved |
Disabled dates block interaction through Month → DayCell disabled propagation and DayCell.handleMouseEvent early return. |
| hypeserver/react-date-range#587 |
Not reproducible as reported |
Current code uses startOfDay(endDate) in DayCell, not endOfDay; upstream report does not match current behavior. May still deserve a separate range-boundary semantics review later. |
Nice-to-have / requires proposal
| Upstream |
Classification |
Notes |
| hypeserver/react-date-range#526 |
Nice-to-have accessibility |
CSS suppresses focus outlines for nav/select/day controls without restoring visible focus rings. Keyboard behavior exists, but visual focus styling needs an a11y polish pass. |
| hypeserver/react-date-range#530 |
Needs investigation / feature |
Current DefinedRange only gives color styling for selected static ranges. No explicit human-readable selected range label exists. Requires UX decision on placement/format. |
Proposed follow-up slices
-
1.0.1 bugfix batch
findNextRangeIndex array guard (#353/#504/#575)
- null range visual selection guard (#360/#402)
weekStartsOn propagation into DefinedRange static ranges (#523)
-
A11y polish backlog
- visible focus rings for nav arrows, month/year selects, and day buttons (#526)
-
UX proposal backlog
- selected range label behavior (#530)
- optional separate review of single-day range boundary semantics (#587), because current behavior differs from the upstream report
Verification performed during audit
- Current tests: 159 passing
npm run type-check: passing
npm run build: passing
- Source review of
src/utils.js, src/defaultRanges.js, src/components/DayCell/index.jsx, src/components/Calendar/index.jsx, src/index.d.ts, and theme CSS
Summary
After publishing
@cyberlz/react-date-range@1.0.0, we audited upstream PRs/issues against the current fork codebase to avoid assuming old upstream bugs still reproduce after the modernization work.This issue tracks the post-1.0 reproducibility classification:
1.0.1+Related index issue: #1
Reproducible bugs in current code
src/defaultRanges.jscomputesstartOfWeek(new Date())/endOfWeek(new Date())at module load withoutweekStartsOn;DefinedRangestatic ranges therefore ignore runtimeweekStartsOn.1.0.1bugfix candidate. Refactor default ranges to accept week options or generate ranges from props.src/utils.js::findNextRangeIndex(ranges, ...)callsranges.findIndex(...)without guardingranges;undefined,null, or non-array values crash.Array.isArray(ranges)guard and regression tests.src/components/DayCell/index.jsxmarks days in range with `(!startDateNot reproducible / verified resolved
getAttributecalls exist in currentsrc/ordist/; keyboard navigation useselement.dataset.date.showMonthAndYearPickers?: booleanexists insrc/index.d.ts; Calendar supports it;npm run type-checkpasses.onShownDateChange, typed and called in Calendar scroll/date navigation paths.scrolloptions are typed and implemented through virtualized scrolling config.preventSnapRefocus, typed and implemented in Calendar focus logic.Month→DayCelldisabled propagation andDayCell.handleMouseEventearly return.startOfDay(endDate)inDayCell, notendOfDay; upstream report does not match current behavior. May still deserve a separate range-boundary semantics review later.Nice-to-have / requires proposal
DefinedRangeonly gives color styling for selected static ranges. No explicit human-readable selected range label exists. Requires UX decision on placement/format.Proposed follow-up slices
1.0.1bugfix batchfindNextRangeIndexarray guard (#353/#504/#575)weekStartsOnpropagation intoDefinedRangestatic ranges (#523)A11y polish backlog
UX proposal backlog
Verification performed during audit
npm run type-check: passingnpm run build: passingsrc/utils.js,src/defaultRanges.js,src/components/DayCell/index.jsx,src/components/Calendar/index.jsx,src/index.d.ts, and theme CSS