Repository navigation
feat(List): filter date ranges by time - #3388
Merged
Merged
Conversation
Contributor
🚀 Preview DeploymentPreview environments are ready:
Images:
|
Lisa18289
force-pushed
the
claude/flow-issue-3375-2e0210
branch
from
October 7, 2026 08:53
a7625a2 to
6b12866
Compare
Lisa18289
force-pushed
the
claude/flow-issue-3375-2e0210
branch
3 times, most recently
from
October 13, 2026 07:31
2057e85 to
ca1b99a
Compare
Lisa18289
marked this pull request as ready for review
October 13, 2026 08:18
Lisa18289
force-pushed
the
claude/flow-issue-3375-2e0210
branch
from
October 13, 2026 08:44
ca1b99a to
780f20e
Compare
Contributor
❌ Visual Regression Tests FailedAt least one shard did not pass. If snapshots differ from the committed baselines, download the visual-diffs-* artifacts from this run to inspect the actual/diff images (a shard that failed before comparison, e.g. during install or browser setup, leaves none). If the differences are intentional, update the baselines by adding the |
`dateRangeOptions.granularity: "minute"` replaces the range calendar
with start and end date and time fields, in the popover and in the
"All filters" modal. Changes apply as they are typed. A date without a
time covers its whole day, an end time its whole minute, and an empty
date leaves that side open.
A range that ends before it starts shows one error below all fields,
whichever field was filled first, and dates outside minValue/maxValue
show their field's error. Neither is applied: the filter keeps the last
valid range. A year below 1000 counts as still being typed, since
react-aria reports it digit by digit, and raises no range error either.
The active filter chip formats with the Flow locale instead of the
browser's and shows open ranges ("from …", "until …"), for both
granularities.
The rules live in components-base and both bindings run them: the
comparison (a CalendarDateTime or ZonedDateTime cell now counts as a
date), which typed input applies (getListDateTimeRangeUpdate) and the
chip text (formatListDateRange). The Vue List gets the same fields, the
list-parity harness four scenarios for them, and remote-dom-demo a Vue
list-date-range demo.
Setting a date range now notifies the filter's listeners, as every other
filter change does. Without it a list with a loader kept its batches —
in Vue it kept showing the rows of the previous range.
The parity normalizer numbers ids in a reference list from left to
right; it numbered Vue's useId before react-aria's in one attribute.
`resolveDateRangeFilterValue` resolves a filter value to the instants
it covers, so a loader filtering on the server uses the same bounds. It
is exported from both remote packages.
Closes #3375
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lisa18289
force-pushed
the
claude/flow-issue-3375-2e0210
branch
from
October 13, 2026 12:15
834eaaf to
e556116
Compare
mfal
self-requested a review
October 15, 2026 12:18
mfal
reviewed
Oct 15, 2026
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Lisa18289
enabled auto-merge
October 21, 2026 05:59
mfal
approved these changes
Oct 21, 2026
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.
Lists of logs, backups or cronjob runs can now be narrowed to a time window instead of whole days.
dateRangeOptions={{ granularity: "minute" }}replaces the range calendar with start date, start time, end date and end time fields, in the filter popover and in the "All filters" modal. The default stays"day", so existing lists don't change.A date without a time covers its whole day, an end time its whole minute, and an empty date leaves that side open. Times are local wall-clock times (
CalendarDateTime). Changes apply as they are typed, as long as the range is valid; otherwise the filter keeps the last valid range. A range that ends before it starts shows one error below all fields, whichever field was filled first, and a date outsideminValue/maxValueshows its field's error.dateRangeOptionsis a union now, so the calendar-only props are a type error with"minute".Worth a look: the active filter chip now formats with the Flow locale instead of the browser's (still numeric, e.g.
9/2/2025, with, 14:30for a time), for both granularities, which changes the existing "filtered" baseline. The new visual scenarios are gated on1.5.0for cross-version runs.resolveDateRangeFilterValueis exported (also fromflr-universaland the Vue package) so a loader filtering on the server resolves a filter value to the same bounds.The Vue
Listgets the same fields. The rules live incomponents-base, so both bindings run them: the comparison (aCalendarDateTimeorZonedDateTimecell now counts as a date), which typed input applies, and the chip text.e2e/list-parityhas four new scenarios, andremote-dom-demoa Vuelist-date-rangedemo.Two fixes on the way. Setting a date range didn't notify the filter's listeners, so a list with a loader kept its batches; in Vue it kept showing the old range's rows. And the parity normalizer numbered Vue's
useIdbefore react-aria's ids within onearia-describedby, instead of left to right.Closes #3375
🤖 Generated with Claude Code