@appbuckets/react-ui
Version:
Just Another React UI Framework
84 lines (78 loc) • 2.17 kB
JavaScript
;
var React = require('react');
var Button = require('../../Button/Button.js');
var Column = require('../../Column/Column.js');
var Divider = require('../../Divider/Divider.js');
var Row = require('../../Row/Row.js');
var Dropzone_context = require('../Dropzone.context.js');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(
n,
k,
d.get
? d
: {
enumerable: true,
get: function () {
return e[k];
},
}
);
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/ _interopNamespace(React);
/* --------
* Component Definition
* -------- */
var DropzoneController = function () {
var dropzone = Dropzone_context.useDropzone();
if (!dropzone.files.length) {
return null;
}
var hasFilesToUpload = dropzone.files.some(function (file) {
return !file.state.success;
});
return React__namespace.createElement(
React__namespace.Fragment,
null,
React__namespace.createElement(Divider, null),
React__namespace.createElement(
Row,
null,
React__namespace.createElement(
Column,
{ textAlign: 'right' },
Button.create(dropzone.props.clearButton, {
autoGenerateKey: false,
overrideProps: {
disabled: dropzone.isDisabled,
onClick: dropzone.clearFiles,
},
}),
Button.create(dropzone.props.uploadButton, {
autoGenerateKey: false,
defaultProps: {
primary: true,
},
overrideProps: {
loading: dropzone.isUploading,
disabled: dropzone.isDisabled || !hasFilesToUpload,
onClick: dropzone.startUpload,
},
})
)
)
);
};
DropzoneController.displayName = 'DropzoneController';
module.exports = DropzoneController;