@@ -530,48 +530,53 @@ export default {
530
530
},
531
531
532
532
async uploadFile ({ file, messageId, roomId }) {
533
- let type = file .extension || file .type
534
- if (type === ' svg' || type === ' pdf' ) {
535
- type = file .type
536
- }
533
+ return new Promise (resolve => {
534
+ let type = file .extension || file .type
535
+ if (type === ' svg' || type === ' pdf' ) {
536
+ type = file .type
537
+ }
537
538
538
- const uploadTask = storageService .uploadFileTask (
539
- this .currentUserId ,
540
- messageId,
541
- file,
542
- type
543
- )
539
+ const uploadTask = storageService .uploadFileTask (
540
+ this .currentUserId ,
541
+ messageId,
542
+ file,
543
+ type
544
+ )
544
545
545
- uploadTask .on (
546
- ' state_changed' ,
547
- snap => {
548
- const progress = Math .round (
549
- (snap .bytesTransferred / snap .totalBytes ) * 100
550
- )
551
- this .updateFileProgress (messageId, file .localUrl , progress)
552
- },
553
- _error => {},
554
- async () => {
555
- const url = await storageService .getFileDownloadUrl (
556
- uploadTask .snapshot .ref
557
- )
546
+ uploadTask .on (
547
+ ' state_changed' ,
548
+ snap => {
549
+ const progress = Math .round (
550
+ (snap .bytesTransferred / snap .totalBytes ) * 100
551
+ )
552
+ this .updateFileProgress (messageId, file .localUrl , progress)
553
+ },
554
+ _error => {
555
+ resolve (false )
556
+ },
557
+ async () => {
558
+ const url = await storageService .getFileDownloadUrl (
559
+ uploadTask .snapshot .ref
560
+ )
558
561
559
- const messageDoc = await firestoreService .getMessage (
560
- roomId,
561
- messageId
562
- )
562
+ const messageDoc = await firestoreService .getMessage (
563
+ roomId,
564
+ messageId
565
+ )
563
566
564
- const files = messageDoc .data ().files
567
+ const files = messageDoc .data ().files
565
568
566
- files .forEach (f => {
567
- if (f .url === file .localUrl ) {
568
- f .url = url
569
- }
570
- })
569
+ files .forEach (f => {
570
+ if (f .url === file .localUrl ) {
571
+ f .url = url
572
+ }
573
+ })
571
574
572
- firestoreService .updateMessage (roomId, messageId, { files })
573
- }
574
- )
575
+ await firestoreService .updateMessage (roomId, messageId, { files })
576
+ resolve (true )
577
+ }
578
+ )
579
+ })
575
580
},
576
581
577
582
updateFileProgress (messageId , fileUrl , progress ) {
0 commit comments