diff --git a/README.md b/README.md
index 20c942e..e0056c5 100644
--- a/README.md
+++ b/README.md
@@ -82,7 +82,7 @@ The main Modal Component.
- `keyboard`: `Boolean(default true)` Modal is dismissible via the `esc` key
- `transition` `Boolean(default true)` Fade the entry and exit of the modal. You can also provide a
-Transition component from the `react-overlays` library to customize the animation more minutely.
+Transition component from the `react-transition-group` v2 library to customize the animation more minutely.
- `attentionClass`: `String(default 'shake')` - an animation class added to the modal when a "static" backdrop is clicked, set to nothing if
no animation is desired
- `container`: `Node(default document.body)`, a DOM Node to append the modal too
diff --git a/package.json b/package.json
index ec9e596..f212905 100644
--- a/package.json
+++ b/package.json
@@ -78,6 +78,7 @@
"dom-helpers": "^3.3.1",
"prop-types": "^15.6.1",
"prop-types-extra": "^1.1.0",
- "react-overlays": "^0.7.3"
+ "react-overlays": "^0.8.0",
+ "react-transition-group": "^2.0.0"
}
}
diff --git a/src/Fade.js b/src/Fade.js
index 827365f..f826477 100644
--- a/src/Fade.js
+++ b/src/Fade.js
@@ -1,22 +1,38 @@
import React from 'react';
-import Transition from 'react-overlays/lib/Transition';
+import Transition, {
+ ENTERED,
+ ENTERING
+} from 'react-transition-group/Transition';
+import cn from 'classnames';
-class Fade extends React.Component {
+const fadeStyles = {
+ [ENTERING]: 'in',
+ [ENTERED]: 'in'
+};
- constructor(props, context){
+class Fade extends React.Component {
+ constructor(props, context) {
super(props, context);
}
render() {
+ const { className, children, ...props } = this.props;
return (
-
+
+ {(status, innerProps) =>
+ React.cloneElement(children, {
+ ...innerProps,
+ className: cn(
+ 'fade',
+ className,
+ children.props.className,
+ fadeStyles[status]
+ )
+ })
+ }
+
);
}
}
-export default Fade
+export default Fade;
diff --git a/src/Modal.js b/src/Modal.js
index 0dbeae2..e9f14b1 100644
--- a/src/Modal.js
+++ b/src/Modal.js
@@ -28,6 +28,12 @@ let omit = (obj, keys) => Object.keys(obj).reduce((o, key) => {
return o;
}, {});
+function DialogTransition(props) {
+ return ;
+}
+function BackdropTransition(props) {
+ return ;
+}
class Modal extends React.Component {
@@ -155,7 +161,7 @@ class Modal extends React.Component {
let prefix = modalPrefix || Modal.getDefaultPrefix();
if (transition === true)
- transition = Fade;
+ transition = DialogTransition;
let modal = (
{modal}
diff --git a/yarn.lock b/yarn.lock
index 0f49396..dc5772a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7051,6 +7051,13 @@ prop-types@^15.6.1:
loose-envify "^1.3.1"
object-assign "^4.1.1"
+prop-types@^15.6.2:
+ version "15.6.2"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
+ dependencies:
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
+
protocols@^1.1.0, protocols@^1.4.0:
version "1.4.6"
resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.6.tgz#f8bb263ea1b5fd7a7604d26b8be39bd77678bf8a"
@@ -7236,6 +7243,10 @@ react-is@^16.3.2, react-is@^16.4.1:
version "16.4.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.1.tgz#d624c4650d2c65dbd52c72622bbf389435d9776e"
+react-lifecycles-compat@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
+
react-live@^1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/react-live/-/react-live-1.7.1.tgz#a4fc7a4d23c2596cf7d4ed10f62dca9a02915e26"
@@ -7247,14 +7258,15 @@ react-live@^1.7.1:
prop-types "^15.5.8"
unescape "^0.2.0"
-react-overlays@^0.7.3:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.7.4.tgz#ef2ec652c3444ab8aa014262b18f662068e56d5c"
+react-overlays@^0.8.0:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.3.tgz#fad65eea5b24301cca192a169f5dddb0b20d3ac5"
dependencies:
classnames "^2.2.5"
dom-helpers "^3.2.1"
prop-types "^15.5.10"
prop-types-extra "^1.0.1"
+ react-transition-group "^2.2.0"
warning "^3.0.0"
react-reconciler@^0.7.0:
@@ -7282,6 +7294,15 @@ react-test-renderer@^16.4.1:
prop-types "^15.6.0"
react-is "^16.4.1"
+react-transition-group@^2.0.0, react-transition-group@^2.2.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.4.0.tgz#1d9391fabfd82e016f26fabd1eec329dbd922b5a"
+ dependencies:
+ dom-helpers "^3.3.1"
+ loose-envify "^1.3.1"
+ prop-types "^15.6.2"
+ react-lifecycles-compat "^3.0.4"
+
react@^16.0.0:
version "16.0.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.0.0.tgz#ce7df8f1941b036f02b2cca9dbd0cb1f0e855e2d"