Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit ef2b2b3

Browse files
jquenseFezVrasta
authored andcommitted
perf: don't recalculate when eventsEnabled changes (#203)
1 parent d084b32 commit ef2b2b3

File tree

5 files changed

+14
-150
lines changed

5 files changed

+14
-150
lines changed

.flowconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
[include]
77

88
[libs]
9+
node_modules/popper.js/index.js.flow
910

1011
[lints]
1112

flow-typed/npm/popper.js_v1.x.x.js

Lines changed: 0 additions & 142 deletions
This file was deleted.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"dependencies": {
6161
"babel-runtime": "6.x.x",
6262
"create-react-context": "^0.2.1",
63-
"popper.js": "^1.14.1",
63+
"popper.js": "^1.14.4",
6464
"prop-types": "^15.6.1",
6565
"typed-styles": "^0.0.5",
6666
"warning": "^3.0.0"

src/Popper.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import * as React from 'react';
33
import PopperJS, {
44
type Placement,
5-
type Instance as PopperJS$Instance,
5+
type Instance,
66
type Data,
77
type Modifiers,
88
type ReferenceObject,
@@ -68,7 +68,7 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
6868
placement: undefined,
6969
};
7070

71-
popperInstance: ?PopperJS$Instance;
71+
popperInstance: ?Instance;
7272

7373
popperNode: ?HTMLElement = null;
7474
arrowNode: ?HTMLElement = null;
@@ -168,12 +168,17 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
168168
// If the Popper.js options have changed, update the instance (destroy + create)
169169
if (
170170
this.props.placement !== prevProps.placement ||
171-
this.props.eventsEnabled !== prevProps.eventsEnabled ||
172171
this.props.referenceElement !== prevProps.referenceElement ||
173172
this.props.positionFixed !== prevProps.positionFixed
174173
) {
175174
this.updatePopperInstance();
176-
return;
175+
} else if (
176+
this.props.eventsEnabled !== prevProps.eventsEnabled &&
177+
this.popperInstance
178+
) {
179+
this.props.eventsEnabled
180+
? this.popperInstance.enableEventListeners()
181+
: this.popperInstance.disableEventListeners();
177182
}
178183

179184
// A placement difference in state means popper determined a new placement

yarn.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5534,9 +5534,9 @@ pn@^1.1.0:
55345534
version "1.1.0"
55355535
resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
55365536

5537-
popper.js@^1.14.1:
5538-
version "1.14.3"
5539-
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095"
5537+
popper.js@^1.14.4:
5538+
version "1.14.4"
5539+
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6"
55405540

55415541
posix-character-classes@^0.1.0:
55425542
version "0.1.1"

0 commit comments

Comments
 (0)