UNPKG

@nodeject/ui-components

Version:

UI library for non-trivial components

47 lines (46 loc) 2.48 kB
"use strict"; 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;