@pluve/ace
Version:
一套React版本的 Taro UI 组件库
38 lines • 2.26 kB
JavaScript
import React, { useState } from 'react';
import { View, ScrollView } from '@tarojs/components';
import { showToast } from '@tarojs/taro';
const Indexes = ({ animation = true, topKey = 'Top', list = [], onClick, children }) => {
const [scrllViewId, setScrollViewId] = useState('');
// 菜单列表
const menuList = [topKey, ...list.map((listItem) => listItem.key)];
const showToastMsg = (message) => {
showToast({
icon: 'none',
title: message,
mask: false,
duration: 1500,
});
};
return (React.createElement(View, { className: "ace-indexes" },
React.createElement(View, { className: "ace-indexes-menu" }, menuList.map((menu) => (React.createElement(View, { onClick: () => {
if (topKey && menu === topKey) {
showToastMsg(topKey);
setScrollViewId('indexes_top');
}
else {
showToastMsg(menu);
setScrollViewId(`ace-indexes-list-item-${menu}`);
}
}, className: "ace-indexes-menu-item", key: menu }, menu)))),
React.createElement(ScrollView, { scrollIntoView: scrllViewId, scrollAnchoring: true, className: "ace-indexes-body", scrollY: true, scrollWithAnimation: animation },
React.createElement(View, { className: "ace-indexes-content", id: "indexes_top" }, children),
React.createElement(View, { className: "ace-indexes-list" }, list.map((listItem) => (React.createElement(View, { className: "ace-indexes-list-item", key: listItem.key },
React.createElement(View, { className: "ace-indexes-list-item-title", id: `ace-indexes-list-item-${listItem.key}` }, listItem.title),
listItem.items && (React.createElement(View, { className: "ace-indexes-list-item-body" }, listItem.items.map((item) => (React.createElement(View, { onClick: () => {
if (onClick) {
onClick(item);
}
}, className: "ace-indexes-list-item-body-item", key: item.name }, item.name))))))))))));
};
export default Indexes;
//# sourceMappingURL=index.js.map