Skip to content

Commit f748406

Browse files
Hypnosphidiasbruno
authored andcommitted
Remove cWRP usage in ModalPortal
1 parent e91d59a commit f748406

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

src/components/ModalPortal.js

+12-17
Original file line numberDiff line numberDiff line change
@@ -69,43 +69,42 @@ export default class ModalPortal extends Component {
6969
}
7070

7171
componentDidMount() {
72-
// Focus needs to be set when mounting and already open
7372
if (this.props.isOpen) {
74-
this.setFocusAfterRender(true);
7573
this.open();
7674
}
7775
}
7876

79-
componentWillReceiveProps(newProps) {
77+
componentDidUpdate(prevProps, prevState) {
8078
if (process.env.NODE_ENV !== "production") {
81-
if (newProps.bodyOpenClassName !== this.props.bodyOpenClassName) {
79+
if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {
8280
// eslint-disable-next-line no-console
8381
console.warn(
8482
'React-Modal: "bodyOpenClassName" prop has been modified. ' +
8583
"This may cause unexpected behavior when multiple modals are open."
8684
);
8785
}
88-
if (newProps.htmlOpenClassName !== this.props.htmlOpenClassName) {
86+
if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {
8987
// eslint-disable-next-line no-console
9088
console.warn(
9189
'React-Modal: "htmlOpenClassName" prop has been modified. ' +
9290
"This may cause unexpected behavior when multiple modals are open."
9391
);
9492
}
9593
}
96-
// Focus only needs to be set once when the modal is being opened
97-
if (!this.props.isOpen && newProps.isOpen) {
98-
this.setFocusAfterRender(true);
94+
95+
if (this.props.isOpen && !prevProps.isOpen) {
9996
this.open();
100-
} else if (this.props.isOpen && !newProps.isOpen) {
97+
} else if (!this.props.isOpen && prevProps.isOpen) {
10198
this.close();
10299
}
103-
}
104100

105-
componentDidUpdate() {
106-
if (this.focusAfterRender) {
101+
// Focus only needs to be set once when the modal is being opened
102+
if (
103+
this.props.shouldFocusAfterRender &&
104+
this.state.isOpen &&
105+
!prevState.isOpen
106+
) {
107107
this.focusContent();
108-
this.setFocusAfterRender(false);
109108
}
110109
}
111110

@@ -114,10 +113,6 @@ export default class ModalPortal extends Component {
114113
clearTimeout(this.closeTimer);
115114
}
116115

117-
setFocusAfterRender = focus => {
118-
this.focusAfterRender = this.props.shouldFocusAfterRender && focus;
119-
};
120-
121116
setOverlayRef = overlay => {
122117
this.overlay = overlay;
123118
this.props.overlayRef && this.props.overlayRef(overlay);

0 commit comments

Comments
 (0)