mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
28 lines
667 B
TypeScript
28 lines
667 B
TypeScript
import styles from './loading-ellipsis.module.css';
|
|
|
|
interface LoadingEllipsisProps {
|
|
string: string;
|
|
}
|
|
|
|
const TRAILING_ELLIPSIS_PATTERN = /\s*(?:\.\.\.|\u2026)\s*$/;
|
|
|
|
const LoadingEllipsis = ({ string }: LoadingEllipsisProps) => {
|
|
const normalizedString = string.replace(TRAILING_ELLIPSIS_PATTERN, '');
|
|
const words = normalizedString.split(' ');
|
|
const lastWord = words.pop();
|
|
const restOfString = words.join(' ');
|
|
|
|
return (
|
|
<span>
|
|
{restOfString}
|
|
{restOfString && ' '}
|
|
<span className={styles.nowrap}>
|
|
{lastWord}
|
|
<span className={styles.ellipsis} />
|
|
</span>
|
|
</span>
|
|
);
|
|
};
|
|
|
|
export default LoadingEllipsis;
|