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
JavaScript
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
};
;