1
1
<template >
2
- <div >
2
+ <div
3
+ :class =" {
4
+ 'text-ellipsis': singleLine
5
+ }"
6
+ >
3
7
<div v-if =" textFormatting" >
4
8
<template v-for =" (message , i ) in linkifiedMessage " >
5
9
<component
6
- :is =" message.types.indexOf( 'url') !== -1 ? 'a' : 'span'"
10
+ :is =" checkType(message, 'url') ? 'a' : 'span'"
7
11
:key =" i"
8
12
: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 ,
11
15
'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')
14
20
}"
15
21
:href =" message.href"
16
22
target =" _blank"
@@ -37,13 +43,20 @@ export default {
37
43
content: { type: [String , Number ], required: true },
38
44
deleted: { type: Boolean , default: false },
39
45
formatLinks: { type: Boolean , default: true },
46
+ singleLine: { type: Boolean , default: false },
40
47
textFormatting: { type: Boolean , required: true }
41
48
},
42
49
43
50
computed: {
44
51
linkifiedMessage () {
45
52
return formatString (this .content , this .formatLinks )
46
53
}
54
+ },
55
+
56
+ methods: {
57
+ checkType (message , type ) {
58
+ return message .types .indexOf (type) !== - 1
59
+ }
47
60
}
48
61
}
49
62
</script >
@@ -60,4 +73,15 @@ export default {
60
73
margin : -3px 1px 0 0 ;
61
74
fill : var (--chat-room-color-message );
62
75
}
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
+ }
63
87
</style >
0 commit comments