metadata-based-explorer1
Version:
Box UI Elements
70 lines (64 loc) • 2.1 kB
JavaScript
/**
*
* @file Uploads manager
*/
import React from 'react';
import classNames from 'classnames';
import ItemList from './ItemList';
import OverallUploadsProgressBar from './OverallUploadsProgressBar';
import './UploadsManager.scss';
import { STATUS_ERROR } from '../../constants';
var UploadsManager = function UploadsManager(_ref) {
var items = _ref.items,
view = _ref.view,
onItemActionClick = _ref.onItemActionClick,
toggleUploadsManager = _ref.toggleUploadsManager,
isExpanded = _ref.isExpanded,
isVisible = _ref.isVisible,
isDragging = _ref.isDragging;
/**
* Keydown handler for progress bar
*
* @param {SyntheticKeyboardEvent} event
* @return {void}
*/
var handleProgressBarKeyDown = function handleProgressBarKeyDown(event) {
switch (event.key) {
case 'Enter':
case 'Space':
toggleUploadsManager();
break;
default: // noop
}
};
var totalSize = items.reduce(function (updatedSize, item) {
return item.status === STATUS_ERROR || item.isFolder ? updatedSize : updatedSize + item.size;
}, 0);
var totalUploaded = items.reduce(function (updatedSize, item) {
return item.status === STATUS_ERROR || item.isFolder ? updatedSize : updatedSize + item.size * item.progress / 100.0;
}, 0);
var percent = totalUploaded / totalSize * 100;
return React.createElement("div", {
"data-resin-component": "uploadsmanager",
"data-resin-feature": "uploads",
className: classNames('be bcu-uploads-manager-container', {
'bcu-is-expanded': isExpanded,
'bcu-is-visible': isVisible
})
}, React.createElement(OverallUploadsProgressBar, {
isDragging: isDragging,
isExpanded: isExpanded,
isVisible: isVisible,
onClick: toggleUploadsManager,
onKeyDown: handleProgressBarKeyDown,
percent: percent,
view: view
}), React.createElement("div", {
className: "bcu-uploads-manager-item-list"
}, React.createElement(ItemList, {
items: items,
onClick: onItemActionClick,
view: view
})));
};
export default UploadsManager;