import React from 'react'; import { EllipsisProps } from './type'; import { isSupportNativeEllipsis } from './utils/is'; import classNames from './utils/classNames'; import NativeEllipsis from './components/NativeEllipsis'; import JsEllipsis from './components/JsEllipsis'; function ReactEllipsis(props: EllipsisProps) { const { className, ellipsis = true, text, dangerouslyUseInnerHTML = false, maxLine = 1, visibleLine, maxHeight, visibleHeight, ellipsisNode = '…', endExcludes = [], reflowOnResize = false, onReflow, onEllipsisClick, } = props; const useNativeEllipsis = isSupportNativeEllipsis && visibleLine === undefined && maxHeight === undefined && visibleHeight === undefined && ellipsisNode === '…' && endExcludes.length === 0 && !onReflow && !onEllipsisClick; return (
{useNativeEllipsis ? ( ) : ( )}
); } export default React.memo(ReactEllipsis);