From c68e3db7977eed202daca8b91d9521d050539abe Mon Sep 17 00:00:00 2001 From: Benjy Cui Date: Mon, 19 Sep 2016 14:37:39 +0800 Subject: [PATCH] fix: should support className --- package.json | 1 + src/AjaxUploader.jsx | 17 +++++++++++------ src/IframeUploader.jsx | 12 +++++++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 94fd5781..83d812ee 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ ], "dependencies": { "babel-runtime": "6.x", + "classnames": "^2.2.5", "warning": "2.x" } } diff --git a/src/AjaxUploader.jsx b/src/AjaxUploader.jsx index 16f63da5..4c79b45e 100644 --- a/src/AjaxUploader.jsx +++ b/src/AjaxUploader.jsx @@ -1,7 +1,8 @@ /* eslint react/no-is-mounted:0*/ -import request from './request'; import React, { PropTypes } from 'react'; +import classNames from 'classnames'; +import request from './request'; import getUid from './uid'; const AjaxUploader = React.createClass({ @@ -9,6 +10,7 @@ const AjaxUploader = React.createClass({ component: PropTypes.string, style: PropTypes.object, prefixCls: PropTypes.string, + className: PropTypes.string, multiple: PropTypes.bool, disabled: PropTypes.bool, accept: PropTypes.string, @@ -157,13 +159,15 @@ const AjaxUploader = React.createClass({ render() { const { - component: Tag, prefixCls, disabled, + component: Tag, prefixCls, className, disabled, style, multiple, accept, children, } = this.props; - const events = disabled ? { - className: `${prefixCls} ${prefixCls}-disabled`, - } : { - className: `${prefixCls}`, + const cls = classNames({ + [prefixCls]: true, + [`${prefixCls}-disabled`]: disabled, + [className]: className, + }); + const events = disabled ? {} : { onClick: this.onClick, onKeyDown: this.onKeyDown, onDrop: this.onFileDrop, @@ -173,6 +177,7 @@ const AjaxUploader = React.createClass({ return ( diff --git a/src/IframeUploader.jsx b/src/IframeUploader.jsx index f2ab65a3..93f9d47e 100644 --- a/src/IframeUploader.jsx +++ b/src/IframeUploader.jsx @@ -1,5 +1,6 @@ import React, { PropTypes } from 'react'; import ReactDOM from 'react-dom'; +import classNames from 'classnames'; import getUid from './uid'; import warning from 'warning'; @@ -19,6 +20,7 @@ const IframeUploader = React.createClass({ style: PropTypes.object, disabled: PropTypes.bool, prefixCls: PropTypes.string, + className: PropTypes.string, accept: PropTypes.string, onStart: PropTypes.func, multiple: PropTypes.bool, @@ -249,17 +251,21 @@ const IframeUploader = React.createClass({ render() { const { - component: Tag, disabled, + component: Tag, disabled, className, prefixCls, children, style, } = this.props; const iframeStyle = { ...IFRAME_STYLE, display: this.state.uploading || disabled ? 'none' : '', }; - + const cls = classNames({ + [prefixCls]: true, + [`${prefixCls}-disabled`]: disabled, + [className]: className, + }); return (