11import React , { PropTypes } from 'react' ;
22import ReactDOM from 'react-dom' ;
33import classNames from 'classnames' ;
4+ import omit from 'lodash.omit' ;
45import TransitionGroup from 'react-addons-transition-group' ;
56import Fade from './Fade' ;
67import {
@@ -161,9 +162,19 @@ class Modal extends React.Component {
161162 }
162163
163164 renderChildren ( ) {
165+ const {
166+ className,
167+ cssModule,
168+ isOpen,
169+ size,
170+ backdrop,
171+ children,
172+ ...attributes
173+ } = omit ( this . props , [ 'toggle' , 'keyboard' , 'onEnter' , 'onExit' , 'zIndex' ] ) ;
174+
164175 return (
165176 < TransitionGroup component = "div" >
166- { this . props . isOpen && (
177+ { isOpen && (
167178 < Fade
168179 key = "modal-dialog"
169180 onEnter = { this . onEnter }
@@ -178,19 +189,20 @@ class Modal extends React.Component {
178189 tabIndex = "-1"
179190 >
180191 < div
181- className = { mapToCssModules ( classNames ( 'modal-dialog' , this . props . className , {
182- [ `modal-${ this . props . size } ` ] : this . props . size
183- } ) , this . props . cssModule ) }
192+ className = { mapToCssModules ( classNames ( 'modal-dialog' , className , {
193+ [ `modal-${ size } ` ] : size
194+ } ) , cssModule ) }
184195 role = "document"
185196 ref = { ( c ) => ( this . _dialog = c ) }
197+ { ...attributes }
186198 >
187199 < div className = "modal-content" >
188- { this . props . children }
200+ { children }
189201 </ div >
190202 </ div >
191203 </ Fade >
192204 ) }
193- { this . props . isOpen && this . props . backdrop && (
205+ { isOpen && backdrop && (
194206 < Fade
195207 key = "modal-backdrop"
196208 transitionAppearTimeout = { 150 }
0 commit comments