react-bootstrap
Version:
Bootstrap 4 components built with React
79 lines (68 loc) • 2.63 kB
JavaScript
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
/* eslint-disable react/no-multi-comp */
import classNames from 'classnames';
import React from 'react';
import SafeAnchor from './SafeAnchor';
var defaultProps = {
active: false,
disabled: false,
activeLabel: '(current)'
};
var PageItem = React.forwardRef(function (_ref, ref) {
var active = _ref.active,
disabled = _ref.disabled,
className = _ref.className,
style = _ref.style,
activeLabel = _ref.activeLabel,
children = _ref.children,
props = _objectWithoutPropertiesLoose(_ref, ["active", "disabled", "className", "style", "activeLabel", "children"]);
var Component = active || disabled ? 'span' : SafeAnchor;
return /*#__PURE__*/React.createElement("li", {
ref: ref,
style: style,
className: classNames(className, 'page-item', {
active: active,
disabled: disabled
})
}, /*#__PURE__*/React.createElement(Component, _extends({
className: "page-link",
disabled: disabled
}, props), children, active && activeLabel && /*#__PURE__*/React.createElement("span", {
className: "sr-only"
}, activeLabel)));
});
PageItem.defaultProps = defaultProps;
PageItem.displayName = 'PageItem';
export default PageItem;
function createButton(name, defaultValue, label) {
var _class, _temp;
if (label === void 0) {
label = name;
}
return _temp = _class = /*#__PURE__*/function (_React$Component) {
_inheritsLoose(_class, _React$Component);
function _class() {
return _React$Component.apply(this, arguments) || this;
}
var _proto = _class.prototype;
_proto.render = function render() {
var _this$props = this.props,
children = _this$props.children,
props = _objectWithoutPropertiesLoose(_this$props, ["children"]);
delete props.active;
return /*#__PURE__*/React.createElement(PageItem, props, /*#__PURE__*/React.createElement("span", {
"aria-hidden": "true"
}, children || defaultValue), /*#__PURE__*/React.createElement("span", {
className: "sr-only"
}, label));
};
return _class;
}(React.Component), _class.displayName = name, _temp;
}
export var First = createButton('First', '«');
export var Prev = createButton('Prev', '‹', 'Previous');
export var Ellipsis = createButton('Ellipsis', '…', 'More');
export var Next = createButton('Next', '›');
export var Last = createButton('Last', '»');