Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

Expand Down Expand Up @@ -93,18 +93,20 @@ var FileInput = (function (_React$Component) {
};

this.triggerInput = function (e) {
_reactDom2['default'].findDOMNode(_this.refs._reactFileReaderInput).click();
_reactDom2['default'].findDOMNode(_this._reactFileReaderInput).click();
};

var win = window;
if (!win.File || !win.FileReader || !win.FileList || !win.Blob) {
var win = typeof window === 'object' ? window : {};
if (typeof window === 'object' && (!win.File || !win.FileReader || !win.FileList || !win.Blob)) {
console.warn('[react-file-reader-input] Some file APIs detected as not supported.' + ' File reader functionality may not fully work.');
}
}

_createClass(FileInput, [{
key: 'render',
value: function render() {
var _this2 = this;

var hiddenInputStyle = this.props.children ? {
// If user passes in children, display children and hide input.
position: 'absolute',
Expand All @@ -115,8 +117,10 @@ var FileInput = (function (_React$Component) {
'div',
{ className: '_react-file-reader-input',
onClick: this.triggerInput },
_react2['default'].createElement('input', _extends({}, this.props, { children: '', type: 'file',
onChange: this.handleChange, ref: '_reactFileReaderInput',
_react2['default'].createElement('input', _extends({}, this.props, { children: undefined, type: 'file',
onChange: this.handleChange, ref: function (c) {
return _this2._reactFileReaderInput = c;
},
style: hiddenInputStyle })),
this.props.children
);
Expand Down
8 changes: 4 additions & 4 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ export default class FileInput extends React.Component {
// FileReader compatibility warning.
super(props);

const win = window;
if (!win.File || !win.FileReader || !win.FileList || !win.Blob) {
const win = typeof window === 'object' ? window : {};
if ((typeof window === 'object') && (!win.File || !win.FileReader || !win.FileList || !win.Blob)) {
console.warn(
'[react-file-reader-input] Some file APIs detected as not supported.' +
' File reader functionality may not fully work.'
Expand Down Expand Up @@ -62,7 +62,7 @@ export default class FileInput extends React.Component {
});
}
triggerInput = e => {
ReactDOM.findDOMNode(this.refs._reactFileReaderInput).click();
ReactDOM.findDOMNode(this._reactFileReaderInput).click();
}
render() {
const hiddenInputStyle = this.props.children ? {
Expand All @@ -74,7 +74,7 @@ export default class FileInput extends React.Component {
return <div className="_react-file-reader-input"
onClick={this.triggerInput}>
<input {...this.props} children={undefined} type="file"
onChange={this.handleChange} ref="_reactFileReaderInput"
onChange={this.handleChange} ref={c => this._reactFileReaderInput = c}
style={hiddenInputStyle}/>

{this.props.children}
Expand Down