diff --git a/src/modalFactory.js b/src/modalFactory.js
index 95e3134..f209b95 100644
--- a/src/modalFactory.js
+++ b/src/modalFactory.js
@@ -1,189 +1,188 @@
-var React = require('react');
-var transitionEvents = require('domkit/transitionEvents');
-var appendVendorPrefix = require('domkit/appendVendorPrefix');
-
-module.exports = function(animation){
-
- return React.createClass({
- propTypes: {
- className: React.PropTypes.string,
- // Close the modal when esc is pressed? Defaults to true.
- keyboard: React.PropTypes.bool,
- onShow: React.PropTypes.func,
- onHide: React.PropTypes.func,
- animation: React.PropTypes.object,
- backdrop: React.PropTypes.bool,
- closeOnClick: React.PropTypes.bool,
- modalStyle: React.PropTypes.object,
- backdropStyle: React.PropTypes.object,
- contentStyle: React.PropTypes.object,
- },
-
- getDefaultProps: function() {
- return {
- className: "",
- onShow: function(){},
- onHide: function(){},
- animation: animation,
- keyboard: true,
- backdrop: true,
- closeOnClick: true,
- modalStyle: {},
- backdropStyle: {},
- contentStyle: {},
- };
- },
-
- getInitialState: function(){
- return {
- willHidden: false,
- hidden: true
- };
- },
-
- hasHidden: function(){
- return this.state.hidden;
- },
-
- addTransitionListener: function(node, handle){
- if (node) {
- var endListener = function(e) {
- if (e && e.target !== node) {
- return;
- }
- transitionEvents.removeEndEventListener(node, endListener);
- handle();
- };
- transitionEvents.addEndEventListener(node, endListener);
- }
- },
-
- handleBackdropClick: function() {
- if (this.props.closeOnClick) {
- this.hide("backdrop");
- }
- },
-
- render: function() {
-
- var hidden = this.hasHidden();
- if (hidden) return null;
-
- var willHidden = this.state.willHidden;
- var animation = this.props.animation;
- var modalStyle = animation.getModalStyle(willHidden);
- var backdropStyle = animation.getBackdropStyle(willHidden);
- var contentStyle = animation.getContentStyle(willHidden);
- var ref = animation.getRef(willHidden);
- var sharp = animation.getSharp && animation.getSharp(willHidden);
-
- // Apply custom style properties
- if (this.props.modalStyle) {
- var prefixedModalStyle = appendVendorPrefix(this.props.modalStyle);
- for (var style in prefixedModalStyle) {
- modalStyle[style] = prefixedModalStyle[style];
- }
- }
-
- if (this.props.backdropStyle) {
- var prefixedBackdropStyle = appendVendorPrefix(this.props.backdropStyle);
- for (var style in prefixedBackdropStyle) {
- backdropStyle[style] = prefixedBackdropStyle[style];
- }
- }
-
- if (this.props.contentStyle) {
- var prefixedContentStyle = appendVendorPrefix(this.props.contentStyle);
- for (var style in prefixedContentStyle) {
- contentStyle[style] = prefixedContentStyle[style];
- }
- }
-
- var backdrop = this.props.backdrop?
: undefined;
-
- if(willHidden) {
- var node = this.refs[ref];
- this.addTransitionListener(node, this.leave);
- }
-
- return (
-
- {sharp}
-
- {this.props.children}
-
-
- {backdrop}
- )
- ;
- },
-
- leave: function(){
- this.setState({
- hidden: true
- });
- this.props.onHide(this.state.hideSource);
- },
-
- enter: function(){
- this.props.onShow();
- },
-
- show: function(){
- if (!this.hasHidden()) return;
-
- this.setState({
- willHidden: false,
- hidden: false
- });
-
- setTimeout(function(){
- var ref = this.props.animation.getRef();
- var node = this.refs[ref];
- this.addTransitionListener(node, this.enter);
- }.bind(this), 0);
- },
-
- hide: function(source){
- if (this.hasHidden()) return;
-
- if (!source) {
- source = "hide";
- }
-
- this.setState({
- hideSource: source,
- willHidden: true
- });
- },
-
- toggle: function(){
- if (this.hasHidden())
- this.show();
- else
- this.hide("toggle");
- },
-
- listenKeyboard: function(event) {
- (typeof(this.props.keyboard)=="function")
- ?this.props.keyboard(event)
- :this.closeOnEsc(event);
- },
-
- closeOnEsc: function(event){
- if (this.props.keyboard &&
- (event.key === "Escape" ||
- event.keyCode === 27)) {
- this.hide("keyboard");
- }
- },
-
- componentDidMount: function(){
- window.addEventListener("keydown", this.listenKeyboard, true);
- },
-
- componentWillUnmount: function() {
- window.removeEventListener("keydown", this.listenKeyboard, true);
+import React from 'react'
+import transitionEvents from 'domkit/transitionEvents'
+import appendVendorPrefix from 'domkit/appendVendorPrefix'
+
+class modalFactory extends React.Component {
+ propTypes: {
+ className: React.PropTypes.string,
+ // Close the modal when esc is pressed? Defaults to true.
+ keyboard: React.PropTypes.bool,
+ onShow: React.PropTypes.func,
+ onHide: React.PropTypes.func,
+ animation: React.PropTypes.object,
+ backdrop: React.PropTypes.bool,
+ closeOnClick: React.PropTypes.bool,
+ modalStyle: React.PropTypes.object,
+ backdropStyle: React.PropTypes.object,
+ contentStyle: React.PropTypes.object,
+ }
+
+ getDefaultProps() {
+ return {
+ className: "",
+ onShow: function(){},
+ onHide: function(){},
+ animation: animation,
+ keyboard: true,
+ backdrop: true,
+ closeOnClick: true,
+ modalStyle: {},
+ backdropStyle: {},
+ contentStyle: {},
+ }
+ }
+
+ getInitialState(){
+ return {
+ willHidden: false,
+ hidden: true
+ }
+ }
+
+ hasHidden(){
+ return this.state.hidden
+ }
+
+ addTransitionListener(node, handle){
+ if (node) {
+ var endListener = function(e) {
+ if (e && e.target !== node) {
+ return
}
- });
-};
+ transitionEvents.removeEndEventListener(node, endListener)
+ handle()
+ }
+ transitionEvents.addEndEventListener(node, endListener)
+ }
+ }
+
+ handleBackdropClick() {
+ if (this.props.closeOnClick) {
+ this.hide("backdrop")
+ }
+ }
+
+ render() {
+
+ var hidden = this.hasHidden()
+ if (hidden) return null
+
+ var willHidden = this.state.willHidden
+ var animation = this.props.animation
+ var modalStyle = animation.getModalStyle(willHidden)
+ var backdropStyle = animation.getBackdropStyle(willHidden)
+ var contentStyle = animation.getContentStyle(willHidden)
+ var ref = animation.getRef(willHidden)
+ var sharp = animation.getSharp && animation.getSharp(willHidden)
+
+ // Apply custom style properties
+ if (this.props.modalStyle) {
+ var prefixedModalStyle = appendVendorPrefix(this.props.modalStyle)
+ for (var style in prefixedModalStyle) {
+ modalStyle[style] = prefixedModalStyle[style]
+ }
+ }
+
+ if (this.props.backdropStyle) {
+ var prefixedBackdropStyle = appendVendorPrefix(this.props.backdropStyle)
+ for (var style in prefixedBackdropStyle) {
+ backdropStyle[style] = prefixedBackdropStyle[style]
+ }
+ }
+
+ if (this.props.contentStyle) {
+ var prefixedContentStyle = appendVendorPrefix(this.props.contentStyle)
+ for (var style in prefixedContentStyle) {
+ contentStyle[style] = prefixedContentStyle[style]
+ }
+ }
+
+ var backdrop = this.props.backdrop? : undefined
+
+ if(willHidden) {
+ var node = this.refs[ref]
+ this.addTransitionListener(node, this.leave)
+ }
+
+ return (
+
+ {sharp}
+
+ {this.props.children}
+
+
+ {backdrop}
+ )
+
+ }
+
+ leave(){
+ this.setState({
+ hidden: true
+ })
+ this.props.onHide(this.state.hideSource)
+ }
+
+ enter(){
+ this.props.onShow()
+ }
+
+ show(){
+ if (!this.hasHidden()) return
+
+ this.setState({
+ willHidden: false,
+ hidden: false
+ })
+
+ setTimeout(function(){
+ var ref = this.props.animation.getRef()
+ var node = this.refs[ref]
+ this.addTransitionListener(node, this.enter)
+ }.bind(this), 0)
+ }
+
+ hide(source){
+ if (this.hasHidden()) return
+
+ if (!source) {
+ source = "hide"
+ }
+
+ this.setState({
+ hideSource: source,
+ willHidden: true
+ })
+ }
+
+ toggle(){
+ if (this.hasHidden())
+ this.show()
+ else
+ this.hide("toggle")
+ }
+
+ listenKeyboard(event) {
+ (typeof(this.props.keyboard)=="function")
+ ?this.props.keyboard(event)
+ :this.closeOnEsc(event)
+ }
+
+ closeOnEsc(event){
+ if (this.props.keyboard &&
+ (event.key === "Escape" ||
+ event.keyCode === 27)) {
+ this.hide("keyboard")
+ }
+ }
+
+ componentDidMount(){
+ window.addEventListener("keydown", this.listenKeyboard, true)
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener("keydown", this.listenKeyboard, true)
+ }
+}
+
+export default modalFactory