code: getIdxCode()

in packages/bui-core/src/ItemSelector/ItemSelectorCore.tsx [67:127]


            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}>
              &#x2715;
            </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) => {