UNPKG

react-link-group

Version:

A ReactJS component for rendering a grouping of clickable links. Clicking a link executes a callback function, passing it the id of the selected link

54 lines (43 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _react2 = require("@css-modules-theme/react"); var _LinkGroup = _interopRequireDefault(require("./LinkGroup.css")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Link = function Link(props) { var id = props.id, displayName = props.displayName, value = props.value, selected = props.selected, selectionCallback = props.selectionCallback; var extraData = ''; if (typeof value !== 'undefined') { extraData = " (".concat(value, ")"); } var theme = (0, _react2.composeThemeFromProps)(_LinkGroup["default"], props, { compose: 'Replace' }); return /*#__PURE__*/_react["default"].createElement("li", { className: selected ? (0, _classnames["default"])(theme.reactLink, theme.selected) : theme.reactLink, onClick: function onClick() { return selectionCallback(id); } }, displayName, extraData); }; var _default = Link; exports["default"] = _default; Link.propTypes = { id: _propTypes["default"].string, displayName: _propTypes["default"].string.isRequired, value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), selected: _propTypes["default"].bool, selectionCallback: _propTypes["default"].func.isRequired }; Link.defaultPrps = { selected: false };