zoapp-ui
Version:
Javascript ES7 React UI Material Components extensions
91 lines (78 loc) • 2.39 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _zrmc = require("zrmc");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ListComponent = function ListComponent(_ref) {
var items = _ref.items,
selectedItem = _ref.selectedItem,
onSelect = _ref.onSelect,
className = _ref.className,
style = _ref.style;
return _react2.default.createElement(
_zrmc.List,
{ className: className, style: style },
items.map(function (item, index) {
var content = item.name;
var imgSrc = void 0;
var icon = void 0;
if (item.icon) {
var color = item.color;
if (!color) {
color = "gray";
}
if (item.icon.endsWith(".svg")) {
imgSrc = item.icon;
} else if (item.icon.endsWith(".png")) {
imgSrc = item.icon;
} else {
icon = item.icon;
}
}
var cn = "selectableListItem";
if (selectedItem === index) {
cn = "selectedListItem";
}
return _react2.default.createElement(
_zrmc.ListItem,
{
imgSrc: imgSrc,
icon: icon,
key: item.id,
onClick: function onClick(e) {
e.preventDefault();
onSelect(index);
},
className: cn
},
content
);
})
);
}; /**
* Copyright (c) 2015-present, CWB SAS
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
ListComponent.defaultProps = {
className: null,
style: null
};
ListComponent.propTypes = {
items: _propTypes2.default.arrayOf(_propTypes2.default.shape({
id: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
name: _propTypes2.default.string,
icon: _propTypes2.default.string
})).isRequired,
selectedItem: _propTypes2.default.number.isRequired,
onSelect: _propTypes2.default.func.isRequired,
className: _propTypes2.default.string,
style: _propTypes2.default.objectOf(_propTypes2.default.string)
};
exports.default = ListComponent;