-
Notifications
You must be signed in to change notification settings - Fork 842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EuiDatePickerRange] Add inline
display behavior; [EuiDatePicker] Improve inline
display behavior
#6795
Conversation
jenkins test this |
- `.react-datepicker-popper` is no longer a class being set anywhere - shadow styles don't use a border
- fix `disabled` and `readOnly` styling & behavior - should match inputs and no longer be interactable - render form control icons below the datepicker - better docs - write tests (e2e for now, should likely be storybook)
+ remove unnecessary height style - appears to already work as-is thanks to `.euiFormControlLayoutDelimited`
- helps separate form control and date picker range concerns
… toggle - due to new `span` `isLoading` needs to be specified via typescript + pulled out of `...rest` tests - reorganize w/ `describe` - add missing props tests docs - convert to TSX - fix bad `isInvalid` use from min test - remove non-working `isInvalid` from `range.tsx` - the display toggle is overriding that prop
- use separate styles fn, since display is so different and has many extra conditions - requires a lot of resets and layout fixes - update docs examples with toggles & snippet - add unit test - but most permutations should likely be storybooks
…nd `prepend/append` display - they don't make sense to render, and the single datepicker doesn't render them either
- to get `@container` query support, which I'll want to use for responsive `inline` behavior
…siveness (sadly, jsdom errors on this, so we have to add another console error exclusion)
Preview documentation changes for this PR: https://eui.elastic.co/pr_6795/ |
e096f99
to
df16cc7
Compare
jenkins test this |
Preview documentation changes for this PR: https://eui.elastic.co/pr_6795/ |
Preview documentation changes for this PR: https://eui.elastic.co/pr_6795/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a huge improvement! 🎉 Code looks great and the changes work as expected on all browsers. Visually I noticed a couple minor things:
Thanks for the great catches Tomasz! I'll fix the dependency conflicts and address the two visual items in your screenshot here shortly |
Preview documentation changes for this PR: https://eui.elastic.co/pr_6795/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚢
## Summary `eui@81.0.0` ⏩ `eui@81.2.0` - Most changes to source code in this PR are CSS cleanups/deprecations in `EuiSuperDatePicker`/`EuiDatePickerRange` - One team (ML) had a `inline` specific usage of `EuiDatePickerRange` that they reached out to us about via Slack, and that we have fixed in this PR. - All other usages of date picker components should have remained working as-is with no changes, but please ping us if you see otherwise! ___ ## [`81.2.0`](https://github.com/elastic/eui/tree/v81.2.0) - Updated `EuiSuperDatePicker` to accept an object configuration for `isDisabled` ([#6821](elastic/eui#6821)) **Bug fixes** - Fixed broken `EuiSuperDatePicker` styles ([#6821](elastic/eui#6821)) ## [`81.1.0`](https://github.com/elastic/eui/tree/v81.1.0) - Added `EuiInlineEditText` and `EuiInlineEditTitle` components ([#6757](elastic/eui#6757)) - Updated `EuiDatePickerRange` to support `inline` display ([#6795](elastic/eui#6795)) - Added an `onError` callback prop to `EuiErrorBoundary` ([#6810](elastic/eui#6810)) - Updated `EuiDataGrid` to only render screen reader text announcing cell position if the cell is currently focused. This should improve the ability to copy and paste multiple cells without SR text. ([#6817](elastic/eui#6817)) **Bug fixes** - Fixed `EuiDatePicker`'s `inline` display to correctly render and prevent user interaction when `disabled` or `readOnly` ([#6795](elastic/eui#6795)) - Fixed `EuiDatePicker`'s `inline` display to correctly render `isInvalid` and `isLoading` icons ([#6795](elastic/eui#6795)) **CSS-in-JS conversions** - Converted `EuiDatePickerRange` to Emotion ([#6795](elastic/eui#6795)) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Summary
The ML team was previously using
EuiDatePickerRange
andinline
together, which was an undocumented usage of the range picker and was only sorta working by accident (note the buggy shadow+border behavior):#6705 broke this accidental behavior by enforcing all the height/width styles a delimited form control normally enforces:
The solution to this is to make the
inline
prop an actual first class citizen forEuiDatePickerRange
. In addition to correctly displaying the base inline state, responsive behavior needed to be implemented, and there were numerous issues and untested permutations ofinline
and, e.g.disabled
/readOnly
/isInvalid
that needed more thoughtful handling.EuiDatePicker
EuiDateRangePicker
QA
disabled
andreadOnly
states for both the single and range picker display as visually expected, and cannot be clicked on or tabbed toloading
andisInvalid
icons appear / set a bottom lineGeneral checklist
@default
if default values are missing)and playground togglesand screenreader modes- [ ] Checked Code Sandbox works for any docs examples- [ ] Checked for breaking changes and labeled appropriately- there are className and DOM changes that we'll likely have to update several Kibana snapshots for, but I don't consider that to be breaking- [ ] Updated the Figma library counterpart- not seeing aninline
prop demo in Figma