File tree Expand file tree Collapse file tree 5 files changed +35
-9
lines changed
Message/MessageFiles/MessageFile Expand file tree Collapse file tree 5 files changed +35
-9
lines changed Original file line number Diff line number Diff line change 6
6
cursor : pointer ;
7
7
}
8
8
9
- .vac-image-loading {
10
- filter : blur (3px );
11
- }
12
-
13
9
.vac-image-buttons {
14
10
position : absolute ;
15
11
width : 100% ;
Original file line number Diff line number Diff line change 25
25
<div
26
26
class =" vac-message-image"
27
27
:class =" {
28
- 'vac-image -loading':
28
+ 'vac-blur -loading':
29
29
isImageLoading && message.senderId === currentUserId
30
30
}"
31
31
:style =" {
Original file line number Diff line number Diff line change @@ -1137,17 +1137,26 @@ export default {
1137
1137
1138
1138
Array.from(files).forEach(async file => {
1139
1139
const fileURL = URL.createObjectURL(file)
1140
- const blobFile = await fetch(fileURL).then(res => res.blob())
1141
1140
const typeIndex = file.name.lastIndexOf('.')
1142
1141
1143
1142
this.files.push({
1144
- blob: blobFile ,
1143
+ loading: true ,
1145
1144
name: file.name.substring(0, typeIndex),
1146
1145
size: file.size,
1147
1146
type: file.type,
1148
1147
extension: file.name.substring(typeIndex + 1),
1149
1148
localUrl: fileURL
1150
1149
})
1150
+
1151
+ const blobFile = await fetch(fileURL).then(res => res.blob())
1152
+
1153
+ let loadedFile = this.files.find(file => file.localUrl === fileURL)
1154
+
1155
+ if (loadedFile) {
1156
+ loadedFile.blob = blobFile
1157
+ loadedFile.loading = false
1158
+ delete loadedFile.loading
1159
+ }
1151
1160
})
1152
1161
1153
1162
setTimeout(() => (this.fileDialog = false), 500)
Original file line number Diff line number Diff line change 1
1
<template >
2
2
<div class =" vac-room-file-container" >
3
+ <loader :show =" file.loading" >
4
+ <template v-for =" (idx , name ) in $scopedSlots " #[name ]=" data " >
5
+ <slot :name =" name" v-bind =" data" />
6
+ </template >
7
+ </loader >
8
+
3
9
<div
4
10
class =" vac-svg-button vac-icon-remove"
5
11
@click =" $emit('remove-file', index)"
12
18
<div
13
19
v-if =" isImage"
14
20
class =" vac-message-image"
21
+ :class =" { 'vac-blur-loading': file.loading }"
15
22
:style =" {
16
23
'background-image': `url('${file.localUrl || file.url}')`
17
24
}"
18
25
/>
19
26
20
- <video v-else-if =" isVideo" controls >
27
+ <video
28
+ v-else-if =" isVideo"
29
+ controls
30
+ :class =" { 'vac-blur-loading': file.loading }"
31
+ >
21
32
<source :src =" file.localUrl || file.url" />
22
33
</video >
23
34
24
- <div v-else class =" vac-file-container" >
35
+ <div
36
+ v-else
37
+ class =" vac-file-container"
38
+ :class =" { 'vac-blur-loading': file.loading }"
39
+ >
25
40
<div >
26
41
<slot name =" file-icon" >
27
42
<svg-icon name =" file" />
38
53
</template >
39
54
40
55
<script >
56
+ import Loader from ' ../../../../components/Loader/Loader'
41
57
import SvgIcon from ' ../../../../components/SvgIcon/SvgIcon'
42
58
43
59
const { isImageFile , isVideoFile } = require (' ../../../../utils/media-file' )
44
60
45
61
export default {
46
62
name: ' RoomFiles' ,
47
63
components: {
64
+ Loader,
48
65
SvgIcon
49
66
},
50
67
Original file line number Diff line number Diff line change 60
60
border-radius : 50% ;
61
61
}
62
62
63
+ .vac-blur-loading {
64
+ filter : blur (3px );
65
+ }
66
+
63
67
.vac-badge-counter {
64
68
height : 13px ;
65
69
width : auto ;
You can’t perform that action at this time.
0 commit comments