in packages/bui-core/src/ItemSelector/ItemSelectorCore.tsx [66:127]
name: getIdxName(item),
code: getIdxCode(item),
};
}),
);
}, [items]);
// 计算每个code的top
useEffect(() => {
if (codeGroup.length === 0) return;
setCodeShow(true);
}, [codeGroup]);
const scrollToCode = (targetCode) => {
if (!targetCode) return;
setTargetId((oldCode) => {
if (targetCode !== oldCode) return targetCode;
return oldCode;
});
};
const touchCbk = (e: React.SyntheticEvent) => {
e.stopPropagation();
touchHandler?.(e, scrollToCode, codeGroup);
};
const codeClickHandler = (rightCode) => {
setTargetId(rightCode);
};
const scrollHandler = throttle(() => {
if (targetId) {
setTargetId(undefined);
}
}, 500);
const closeHandler = (e: React.SyntheticEvent) => {
onClose?.(e);
};
return (
<div className={clsx(prefixCls, className)} ref={nodeRef} {...others}>
{pageTitle ? (
<div className={`${prefixCls}-title`}>
{pageTitle}
<div className={`${prefixCls}-btn-close`} onClick={closeHandler}>
✕
</div>
</div>
) : null}
<ScrollView
scrollIntoView={targetId}
scrollY
className={clsx(`${prefixCls}-scroll-view-container tph`, {
'container-has-title': pageTitle,
})}
onScroll={scrollHandler}
>
<div className={`${prefixCls}-all-item`}>
{items?.length > 0 ? (
<div className={`${prefixCls}-list-container`}>
{items.map((item, itemGroupIndex) => {