Browse Source

change api name

pull/1665/head
twisger 8 years ago
committed by 陈帅
parent
commit
456d25aa60
  1. 2
      src/components/Ellipsis/index.d.ts
  2. 2
      src/components/Ellipsis/index.en-US.md
  3. 14
      src/components/Ellipsis/index.js
  4. 12
      src/components/Ellipsis/index.test.js
  5. 2
      src/components/Ellipsis/index.zh-CN.md

2
src/components/Ellipsis/index.d.ts

@ -5,7 +5,7 @@ export interface IEllipsisProps {
lines?: number;
style?: React.CSSProperties;
className?: string;
caculateShowLength?: boolean;
fullWidthRecognition?: boolean;
}
export default class Ellipsis extends React.Component<IEllipsisProps, any> {}

2
src/components/Ellipsis/index.en-US.md

@ -13,4 +13,4 @@ Property | Description | Type | Default
tooltip | tooltip for showing the full text content when hovering over | boolean | -
length | maximum number of characters in the text before being truncated | number | -
lines | maximum number of rows in the text before being truncated | number | `1`
caculateShowLength | whether consider full-width character length as 2 when calculate string length | boolean | -
fullWidthRecognition | whether consider full-width character length as 2 when calculate string length | boolean | -

14
src/components/Ellipsis/index.js

@ -8,7 +8,7 @@ import styles from './index.less';
const isSupportLineClamp = document.body.style.webkitLineClamp !== undefined;
export const getStrShowLength = (str = '') => {
export const getStrFullLength = (str = '') => {
return str.split('').reduce((pre, cur) => {
const charCode = cur.charCodeAt(0);
if (charCode >= 0 && charCode <= 128) {
@ -19,7 +19,7 @@ export const getStrShowLength = (str = '') => {
}, 0);
};
export const cutStrByShowLength = (str = '', maxLength) => {
export const cutStrByFullLength = (str = '', maxLength) => {
let showLength = 0;
return str.split('').reduce((pre, cur) => {
const charCode = cur.charCodeAt(0);
@ -36,11 +36,11 @@ export const cutStrByShowLength = (str = '', maxLength) => {
}, '');
};
const EllipsisText = ({ text, length, tooltip, caculateShowLength, ...other }) => {
const EllipsisText = ({ text, length, tooltip, fullWidthRecognition, ...other }) => {
if (typeof text !== 'string') {
throw new Error('Ellipsis children must be string.');
}
const textLength = caculateShowLength ? getStrShowLength(text) : text.length;
const textLength = fullWidthRecognition ? getStrFullLength(text) : text.length;
if (textLength <= length || length < 0) {
return <span {...other}>{text}</span>;
}
@ -49,7 +49,7 @@ const EllipsisText = ({ text, length, tooltip, caculateShowLength, ...other }) =
if (length - tail.length <= 0) {
displayText = '';
} else {
displayText = caculateShowLength ? cutStrByShowLength(text, length) : text.slice(0, length);
displayText = fullWidthRecognition ? cutStrByFullLength(text, length) : text.slice(0, length);
}
if (tooltip) {
@ -182,7 +182,7 @@ export default class Ellipsis extends Component {
length,
className,
tooltip,
caculateShowLength,
fullWidthRecognition,
...restProps
} = this.props;
@ -207,7 +207,7 @@ export default class Ellipsis extends Component {
length={length}
text={children || ''}
tooltip={tooltip}
caculateShowLength={caculateShowLength}
fullWidthRecognition={fullWidthRecognition}
{...restProps}
/>
);

12
src/components/Ellipsis/index.test.js

@ -1,13 +1,13 @@
import { getStrShowLength, cutStrByShowLength } from './index.js';
import { getStrFullLength, cutStrByFullLength } from './index.js';
describe('test calculateShowLength', () => {
it('get show length', () => {
expect(getStrShowLength('一二,a,')).toEqual(8);
it('get full length', () => {
expect(getStrFullLength('一二,a,')).toEqual(8);
});
it('cut str by show length', () => {
expect(cutStrByShowLength('一二,a,', 7)).toEqual('一二,a');
it('cut str by full length', () => {
expect(cutStrByFullLength('一二,a,', 7)).toEqual('一二,a');
});
it('cut str when length small', () => {
expect(cutStrByShowLength('一22三', 5)).toEqual('一22');
expect(cutStrByFullLength('一22三', 5)).toEqual('一22');
});
});

2
src/components/Ellipsis/index.zh-CN.md

@ -14,4 +14,4 @@ order: 10
tooltip | 移动到文本展示完整内容的提示 | boolean | -
length | 在按照长度截取下的文本最大字符数,超过则截取省略 | number | -
lines | 在按照行数截取下最大的行数,超过则截取省略 | number | `1`
caculateShowLength | 是否将全角字符的长度视为2来计算字符串长度 | boolean | -
fullWidthRecognition | 是否将全角字符的长度视为2来计算字符串长度 | boolean | -

Loading…
Cancel
Save