UNPKG

@pubsweet/ui

Version:

React component library for use in pubsweet apps

99 lines (73 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _lodash = require("lodash"); var _reactFeather = require("react-feather"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _atoms = require("../atoms"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _templateObject3() { var data = _taggedTemplateLiteral(["\n margin-left: 5px;\n margin-right: 5px;\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n flex-direction: row;\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n flex-direction: row;\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var StateListContainer = _styledComponents["default"].div(_templateObject()); var ItemContainer = _styledComponents["default"].div(_templateObject2()); var Delimiter = (0, _styledComponents["default"])(_reactFeather.ChevronRight).attrs(function () { return { size: 16 }; })(_templateObject3()); var StateList = function StateList(_ref) { var currentValues = _ref.currentValues, update = _ref.update, values = _ref.values; var progressIds = (0, _lodash.keys)(values); var lastItem = (0, _lodash.last)(progressIds); // TODO: Placeholder -- to be implemented with authsome var canAct = function canAct(key) { return true; }; var handleUpdate = function handleUpdate(currentItem, nextIndex) { update(currentItem, nextIndex); }; var items = (0, _lodash.map)(values, function (valueList, currentItem) { var currentValueIndex = currentValues[currentItem]; return /*#__PURE__*/_react["default"].createElement(ItemContainer, { key: (0, _lodash.uniqueId)() }, /*#__PURE__*/_react["default"].createElement(_atoms.StateItem, { disabled: !canAct(currentItem), index: currentValueIndex, update: handleUpdate, values: valueList }), currentItem !== lastItem && /*#__PURE__*/_react["default"].createElement(Delimiter, null)); }); return /*#__PURE__*/_react["default"].createElement(StateListContainer, null, items); }; StateList.propTypes = { currentValues: _propTypes["default"].objectOf(_propTypes["default"].number).isRequired, update: _propTypes["default"].func.isRequired, values: _propTypes["default"].objectOf(_propTypes["default"].arrayOf(_propTypes["default"].string)).isRequired }; var _default = StateList; exports["default"] = _default;