preact-arco-design
Version:
Arco Design React UI Library.
54 lines (48 loc) • 1.7 kB
JavaScript
import React, { forwardRef } from "preact/compat";
import Button from "../../Button";
import { isArray } from "../../_util/is";
function Shortcuts(props, ref) {
var prefixCls = props.prefixCls,
_a = props.shortcuts,
shortcuts = _a === void 0 ? [] : _a,
onSelectNow = props.onSelectNow,
nowText = props.nowText,
showNowBtn = props.showNowBtn,
showTime = props.showTime,
onMouseEnterShortcut = props.onMouseEnterShortcut,
onMouseLeaveShortcut = props.onMouseLeaveShortcut;
function _onMouseEnter(shortcut) {
onMouseEnterShortcut && onMouseEnterShortcut(shortcut);
}
function _onMouseLeave(shortcut) {
onMouseLeaveShortcut && onMouseLeaveShortcut(shortcut);
}
function _onClick(shortcut, e) {
var onSelectShortcut = props.onSelectShortcut;
onSelectShortcut && onSelectShortcut(shortcut, e);
}
var hasShortcuts = isArray(shortcuts) && shortcuts.length > 0;
var shouldShowNowBtn = showNowBtn && showTime && !hasShortcuts;
return React.createElement("div", {
ref: ref,
className: "".concat(prefixCls, "-shortcuts")
}, shouldShowNowBtn && React.createElement(Button, {
size: "mini",
onClick: onSelectNow
}, nowText), hasShortcuts && shortcuts.map(function (shortcut, index) {
return React.createElement(Button, {
key: index,
size: "mini",
onMouseEnter: function onMouseEnter() {
return _onMouseEnter(shortcut);
},
onMouseLeave: function onMouseLeave() {
return _onMouseLeave(shortcut);
},
onClick: function onClick(e) {
return _onClick(shortcut, e);
}
}, shortcut.text);
}));
}
export default forwardRef(Shortcuts);