From 953ea47f25ddfc76e297249d782d9e29247c5c4c Mon Sep 17 00:00:00 2001 From: Chandler Prall Date: Thu, 26 Mar 2020 15:44:11 -0600 Subject: [PATCH] Fixed EuiResizeObserver infinite disconnect call chain; fixed defaultProps setup in EuiComboBox --- .../combo_box/__snapshots__/combo_box.test.tsx.snap | 4 ---- src/components/combo_box/combo_box.tsx | 8 ++++---- .../observer/resize_observer/resize_observer.tsx | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/components/combo_box/__snapshots__/combo_box.test.tsx.snap b/src/components/combo_box/__snapshots__/combo_box.test.tsx.snap index 1fbb44b97119..6d6cedcf6f50 100644 --- a/src/components/combo_box/__snapshots__/combo_box.test.tsx.snap +++ b/src/components/combo_box/__snapshots__/combo_box.test.tsx.snap @@ -381,7 +381,6 @@ exports[`props singleSelection is rendered 1`] = ` role="combobox" > * `startsWith`: moves items that start with search value to top of the list; * `none`: don't change the sort order of initial object */ - sortMatchesBy?: 'none' | 'startsWith'; + sortMatchesBy: 'none' | 'startsWith'; /** * Creates an input group with element(s) coming before input. It won't show if `singleSelection` is set to `false`. * `string` | `ReactElement` or an array of these @@ -178,9 +178,9 @@ export class EuiComboBox extends Component< options: [], selectedOptions: [], singleSelection: false, - prepend: null, - append: null, - sortMatchesBy: 'none', + prepend: undefined, + append: undefined, + sortMatchesBy: 'none' as const, }; state: EuiComboBoxState = { diff --git a/src/components/observer/resize_observer/resize_observer.tsx b/src/components/observer/resize_observer/resize_observer.tsx index bf10090411e2..99f97aee0d2b 100644 --- a/src/components/observer/resize_observer/resize_observer.tsx +++ b/src/components/observer/resize_observer/resize_observer.tsx @@ -57,9 +57,9 @@ const makeCompatibleObserver = (node: Element, callback: () => void) => { window.addEventListener('resize', callback); + const _disconnect = observer.disconnect.bind(observer); observer.disconnect = () => { - observer.disconnect(); - + _disconnect(); window.removeEventListener('resize', callback); };