zp-bee
Version:
zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。
117 lines (94 loc) • 3.88 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("antd/es/tabs/style");
var _tabs = _interopRequireDefault(require("antd/es/tabs"));
var _react = _interopRequireWildcard(require("react"));
var _config = require("../_utils/config");
var _defaultEmojicons = _interopRequireDefault(require("./defaultEmojicons"));
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
}
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
/**
* @description: 表情库
* @author: zs
* @Date: 2020-11-05 19:56:57
* @LastEditTime 2020-11-26 14:33:33
* @LastEditors ronffy
*/
// #----------- 上: ts类型定义 ----------- 分割线 ----------- 下: JS代码 -----------
var TabPane = _tabs.default.TabPane;
var defaultEmojiTabs = [0, 1, 2, 3];
var defaultArr = [];
var defaultColumns = [];
var TabsEmoji = function TabsEmoji(_a) {
var _a$defaultActiveKey = _a.defaultActiveKey,
defaultActiveKey = _a$defaultActiveKey === void 0 ? '0' : _a$defaultActiveKey,
activeKey = _a.activeKey,
onChange = _a.onChange,
_a$emojiTabs = _a.emojiTabs,
emojiTabs = _a$emojiTabs === void 0 ? defaultEmojiTabs : _a$emojiTabs,
_a$emojiTextTabs = _a.emojiTextTabs,
emojiTextTabs = _a$emojiTextTabs === void 0 ? defaultArr : _a$emojiTextTabs,
_a$emojiColumns = _a.emojiColumns,
emojiColumns = _a$emojiColumns === void 0 ? defaultColumns : _a$emojiColumns,
onEmojiChange = _a.onEmojiChange,
props = __rest(_a, ["defaultActiveKey", "activeKey", "onChange", "emojiTabs", "emojiTextTabs", "emojiColumns", "onEmojiChange"]);
var prefixCls = (0, _react.useMemo)(function () {
return "".concat(_config.defaultPrefixCls, "-emoji-tab");
}, []);
var filterEmojiconsArr = (0, _react.useMemo)(function () {
if (Array.isArray(emojiColumns) && emojiColumns.length) {
return emojiColumns;
}
var filterResult = _defaultEmojicons.default.filter(function (_item, index) {
return typeof emojiTabs === 'string' ? emojiTabs.split(',').includes(String(index)) : emojiTabs.includes(index);
});
if (Array.isArray(emojiTextTabs) && emojiTextTabs.length) {
filterResult = filterResult.map(function (item, index) {
if (emojiTextTabs[index]) {
item.title = emojiTextTabs[index];
}
return item;
});
}
return filterResult;
}, [emojiTabs, emojiColumns, emojiTextTabs]);
var filterTabsProps = (0, _react.useMemo)(function () {
var propsObj = {};
if (onChange) {
propsObj.onChange = onChange;
}
if (!activeKey) {
propsObj.defaultActiveKey = defaultActiveKey;
}
return propsObj;
}, [onChange, activeKey]);
return /*#__PURE__*/_react.default.createElement(_tabs.default, Object.assign({}, filterTabsProps, props), filterEmojiconsArr.map(function (item, i) {
return /*#__PURE__*/_react.default.createElement(TabPane, {
tab: item.title,
key: i
}, item.emoji.map(function (emoji) {
return /*#__PURE__*/_react.default.createElement("span", {
key: emoji.unifiedCode,
className: "".concat(prefixCls, "-emoji"),
onClick: function onClick() {
return onEmojiChange(emoji.cnCode);
}
}, emoji.cnCode);
}));
}));
};
var _default = TabsEmoji;
exports.default = _default;