@nodeject/ui-components
Version:
UI library for non-trivial components
47 lines (46 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Separator = void 0;
var icons_1 = require("@ant-design/icons");
var antd_1 = require("antd");
var React = require("react");
var react_router_dom_1 = require("react-router-dom");
var ButtonLabel_1 = require("../buttons/ButtonLabel");
var hooks_1 = require("../hooks");
var styles = require("./Separator.module.less");
var Text = antd_1.Typography.Text;
var separatorRenderDefault = React.createElement(icons_1.RightOutlined, null);
var Separator = function (props) {
var className = props.className, id = props.id, islinkListLoading = props.islinkListLoading, linkList = props.linkList, onDropDownClick = props.onDropDownClick, path = props.path, separatorRenderProps = props.separatorRender;
var separatorRender = separatorRenderProps || separatorRenderDefault;
var _a = hooks_1.useToggle(), active = _a.active, toggleOn = _a.toggleOn, toggleOff = _a.toggleOff;
var Link = props.Link !== undefined ? props.Link : react_router_dom_1.Link;
var onButtonClick = function () {
if (onDropDownClick) {
onDropDownClick({ id: id, url: path });
toggleOn();
}
if (!onDropDownClick && linkList) {
toggleOn();
}
};
var onVisibleChange = function (visible) {
if (!visible) {
toggleOff();
}
};
var onLinkClick = function (url) {
if (props.onLinkClick) {
props.onLinkClick(url);
}
};
var button = (React.createElement(ButtonLabel_1.ButtonLabel, { className: className, onClick: onButtonClick, active: active },
React.createElement(Text, { type: "secondary", className: styles.separator }, separatorRender)));
return (linkList === null || linkList === void 0 ? void 0 : linkList.length) > 0 ? (React.createElement(antd_1.Dropdown, { onVisibleChange: onVisibleChange, overlay: React.createElement(antd_1.Menu, null, islinkListLoading
? null
: linkList.map(function (link) {
return (React.createElement(antd_1.Menu.Item, { key: "" + link.url + link.label },
React.createElement(Link, { to: link === null || link === void 0 ? void 0 : link.url, onClick: function () { return onLinkClick(link.url); } }, link.label)));
})), trigger: ['click'], visible: active }, button)) : (button);
};
exports.Separator = Separator;