Use source loader for email sprite icons
[ProtonMail-WebClient.git] / packages / utils / truncate.ts
blob8a3cb7ff7cbbb927656944ff7c8ea96c050d7210
1 export const DEFAULT_TRUNCATE_OMISSION = '…';
3 /**
4  * Truncate `str` to a maximum length `charsToDisplay`.
5  * Appends `omission` if `str` is too long.
6  *
7  * The length of the string returned (which may include
8  * the omission) will not exceed `charsToDisplay`.
9  */
10 export default function truncate(
11     /**
12      * String to truncate.
13      */
14     str: string,
15     /**
16      * Number of characters to display.
17      */
18     charsToDisplay = 50,
19     /**
20      * The string appended if `str` is too long.
21      */
22     omission = DEFAULT_TRUNCATE_OMISSION
23 ) {
24     if (str.length === 0 || str.length <= charsToDisplay) {
25         return str;
26     }
28     return str.substring(0, charsToDisplay - omission.length) + omission;