-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Input controls] Replace react-select with EuiComboBox #17452
Conversation
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
With a lot of fields, this is really slow. I created an index pattern without about 3000 fields and typing the first letter took over a second before it displayed the letter. Also, could you sort the fields so that the items that start with the entered text are at the top? The field list in the terms aggregation does this. It uses https://github.com/elastic/kibana/blob/master/src/ui/public/utils/sort_prefix_first.js to do the sorting. |
@trevan Great points! I've recorded these within issues in the EUI repo:
Thanks for your help! |
💔 Build Failed |
💔 Build Failed |
💚 Build Succeeded |
💚 Build Succeeded |
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.
🤸♀️
* Extract filtering value from kibana filters | ||
* | ||
* @param {object} kbnFilter | ||
* @return {array of strings} array of values pulled from filter |
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.
nit, jsdoc is :
@return {Array.<string>}
💚 Build Succeeded |
* replace react-select with EuiComboBox * remove constructor for ListControl component * get working with portal version * remove overflow visible from input_control_vis since its no longer needed * convert index pattern select to EuiComboBox * replace react-select with EuiComboBox for field select * group fields by type * remove esvm * remove on-foxus box around input cursor * fix jest tests * remove broken jest test * fix functional tests * review changes * remove componentWillMount from field_select * update snapshot changed from rebasing and getting new EUI version * use combo box clear and close buttons for clearing and closing * jsdoc syntax fix
* replace react-select with EuiComboBox * remove constructor for ListControl component * get working with portal version * remove overflow visible from input_control_vis since its no longer needed * convert index pattern select to EuiComboBox * replace react-select with EuiComboBox for field select * group fields by type * remove esvm * remove on-foxus box around input cursor * fix jest tests * remove broken jest test * fix functional tests * review changes * remove componentWillMount from field_select * update snapshot changed from rebasing and getting new EUI version * use combo box clear and close buttons for clearing and closing * jsdoc syntax fix
💔 Build Failed |
fixes #15247 and #17853
Replaces
react-select
withEuiComboBox
.react-select
option menu is nested under the component. This meant that the menu got clipped by the panel unlessoverflow: visible
was set. Settingoverflow: visible
caused the problems highlighted by #15247.EuiComboBox
uses portal to attach the options menu to the body element. This allows the menu to avoid getting clipped by the dashboard panel.Additional refactoring was required because react-select represents the list of selected values as a comma delimited string while EuiComboBox represents the list of selected values an array of objects.
Updated August 20th 2018
EuiComboBox also has proper support for dark-theme