11<template >
2- <div >
2+ <div
3+ :class =" {
4+ 'text-ellipsis': singleLine
5+ }"
6+ >
37 <div v-if =" textFormatting" >
48 <template v-for =" (message , i ) in linkifiedMessage " >
59 <component
6- :is =" message.types.indexOf( 'url') !== -1 ? 'a' : 'span'"
10+ :is =" checkType(message, 'url') ? 'a' : 'span'"
711 :key =" i"
812 :class =" {
9- 'text-bold ': message.types.indexOf('bold') !== -1 ,
10- 'text-italic ': message.types.indexOf('italic') !== -1 ,
13+ 'text-block ': singleLine ,
14+ 'text-ellipsis ': singleLine ,
1115 'text-deleted': deleted,
12- 'text-strike': message.types.indexOf('strike') !== -1,
13- 'text-underline': message.types.indexOf('underline') !== -1
16+ 'text-bold': checkType(message, 'bold'),
17+ 'text-italic': checkType(message, 'italic'),
18+ 'text-strike': checkType(message, 'strike'),
19+ 'text-underline': checkType(message, 'undeline')
1420 }"
1521 :href =" message.href"
1622 target =" _blank"
@@ -37,13 +43,20 @@ export default {
3743 content: { type: [String , Number ], required: true },
3844 deleted: { type: Boolean , default: false },
3945 formatLinks: { type: Boolean , default: true },
46+ singleLine: { type: Boolean , default: false },
4047 textFormatting: { type: Boolean , required: true }
4148 },
4249
4350 computed: {
4451 linkifiedMessage () {
4552 return formatString (this .content , this .formatLinks )
4653 }
54+ },
55+
56+ methods: {
57+ checkType (message , type ) {
58+ return message .types .indexOf (type) !== - 1
59+ }
4760 }
4861}
4962 </script >
@@ -60,4 +73,15 @@ export default {
6073 margin : -3px 1px 0 0 ;
6174 fill : var (--chat-room-color-message );
6275}
76+
77+ .text-block {
78+ display : inline-block ;
79+ }
80+
81+ .text-ellipsis {
82+ width : 100% ;
83+ white-space : nowrap ;
84+ overflow : hidden ;
85+ text-overflow : ellipsis ;
86+ }
6387 </style >
0 commit comments