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

Commit d17699f

Browse files
committed
fix: add forceUpdate to types
1 parent 2106396 commit d17699f

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

src/Popper.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// @flow
2-
import deepEqual from "deep-equal";
2+
import deepEqual from 'deep-equal';
33
import * as React from 'react';
44
import { createPopper } from '@popperjs/core';
55
import {
@@ -13,10 +13,10 @@ import {
1313
} from '@popperjs/core/lib';
1414
import { ManagerReferenceNodeContext } from './Manager';
1515
import { unwrapArray, setRef, shallowEqual } from './utils';
16-
import { type Ref } from "./RefTypes";
16+
import { type Ref } from './RefTypes';
1717

1818
type ReferenceElement = ?(VirtualElement | HTMLElement);
19-
type Modifiers = Array<$Shape<Modifier<any>>>
19+
type Modifiers = Array<$Shape<Modifier<any>>>;
2020

2121
export type PopperArrowProps = {|
2222
ref: Ref,
@@ -31,9 +31,10 @@ export type PopperChildrenProps = {|
3131
hasPopperEscaped: ?boolean,
3232

3333
update: () => Promise<null | $Shape<State>>,
34+
forceUpdate: () => $Shape<State>,
3435
arrowProps: PopperArrowProps,
3536
|};
36-
export type PopperChildren = PopperChildrenProps => React.Node;
37+
export type PopperChildren = (PopperChildrenProps) => React.Node;
3738

3839
export type PopperProps = {|
3940
children: PopperChildren,
@@ -42,7 +43,7 @@ export type PopperProps = {|
4243
placement?: Placement,
4344
strategy?: PositioningStrategy,
4445
referenceElement?: ReferenceElement,
45-
onFirstUpdate?: ($Shape<State>) => void
46+
onFirstUpdate?: ($Shape<State>) => void,
4647
|};
4748

4849
type PopperState = {|
@@ -122,13 +123,15 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
122123

123124
getOptions = () => {
124125
const { modifiers = [] } = this.props;
125-
const arrowModifier = modifiers.find(modifier => modifier.name === 'arrow');
126+
const arrowModifier = modifiers.find(
127+
(modifier) => modifier.name === 'arrow'
128+
);
126129

127130
return {
128131
placement: this.props.placement,
129132
strategy: this.props.strategy,
130133
modifiers: [
131-
...modifiers.filter(modifier => modifier.name !== 'arrow'),
134+
...modifiers.filter((modifier) => modifier.name !== 'arrow'),
132135
{
133136
name: 'arrow',
134137
enabled: !!this.arrowNode,
@@ -139,20 +142,18 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
139142
},
140143
{
141144
name: 'applyStyles',
142-
enabled: false
145+
enabled: false,
143146
},
144147
this.updateStateModifier,
145148
],
146-
onFirstUpdate: this.props.onFirstUpdate
149+
onFirstUpdate: this.props.onFirstUpdate,
147150
};
148151
};
149152

150153
getPopperStyle = () => {
151154
const computedInitialStyle = {
152155
...initialPopperStyle,
153-
position: this.props.strategy === 'fixed'
154-
? 'fixed'
155-
: 'absolute',
156+
position: this.props.strategy === 'fixed' ? 'fixed' : 'absolute',
156157
};
157158

158159
return !this.popperNode || !this.state.styles
@@ -205,23 +206,24 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
205206
if (
206207
this.props.placement !== prevProps.placement ||
207208
this.props.strategy !== prevProps.strategy ||
208-
!deepEqual(this.props.modifiers, prevProps.modifiers, {strict: true})
209+
!deepEqual(this.props.modifiers, prevProps.modifiers, { strict: true })
209210
) {
210-
211211
// develop only check that modifiers isn't being updated needlessly
212-
if (process.env.NODE_ENV === "development") {
212+
if (process.env.NODE_ENV === 'development') {
213213
if (
214214
this.props.modifiers !== prevProps.modifiers &&
215215
this.props.modifiers != null &&
216216
prevProps.modifiers != null &&
217217
shallowEqual(this.props.modifiers, prevProps.modifiers)
218218
) {
219-
console.warn("'modifiers' prop reference updated even though all values appear the same.\nConsider memoizing the 'modifiers' object to avoid needless rendering.");
219+
console.warn(
220+
"'modifiers' prop reference updated even though all values appear the same.\nConsider memoizing the 'modifiers' object to avoid needless rendering."
221+
);
220222
}
221223
}
222224

223225
if (this.popperInstance) {
224-
this.popperInstance.setOptions(this.getOptions())
226+
this.popperInstance.setOptions(this.getOptions());
225227
}
226228
}
227229

typings/react-popper.d.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@ export interface PopperChildrenProps {
2929
style: React.CSSProperties;
3030

3131
placement: PopperJS.Placement;
32-
isReferenceHidden?: boolean,
33-
hasPopperEscaped?: boolean,
32+
isReferenceHidden?: boolean;
33+
hasPopperEscaped?: boolean;
3434

3535
update: () => Promise<null | Partial<PopperJS.State>>;
36+
forceUpdate: () => Partial<PopperJS.State>;
3637
arrowProps: PopperArrowProps;
3738
}
3839

0 commit comments

Comments
 (0)