File tree Expand file tree Collapse file tree 1 file changed +34
-13
lines changed
Expand file tree Collapse file tree 1 file changed +34
-13
lines changed Original file line number Diff line number Diff line change @@ -562,24 +562,45 @@ export default {
562562 .child (messageId)
563563 .child (` ${ file .name } .${ type} ` )
564564
565- await uploadFileRef .put (file .blob , { contentType: type })
566- const url = await uploadFileRef .getDownloadURL ()
565+ const uploadTask = uploadFileRef .put (file .blob , {
566+ contentType: type
567+ })
567568
568- const messageDoc = await messagesRef (roomId)
569- .doc (messageId)
570- .get ()
569+ uploadTask .on (
570+ ' state_changed' ,
571+ snap => {
572+ const progress = Math .round (
573+ (snap .bytesTransferred / snap .totalBytes ) * 100
574+ )
575+ this .updateFileProgress (messageId, progress)
576+ },
577+ _error => {},
578+ async () => {
579+ const url = await uploadTask .snapshot .ref .getDownloadURL ()
571580
572- const files = messageDoc .data ().files
581+ const messageDoc = await messagesRef (roomId)
582+ .doc (messageId)
583+ .get ()
573584
574- files .forEach (f => {
575- if (f .url === file .localUrl ) {
576- f .url = url
585+ const files = messageDoc .data ().files
586+
587+ files .forEach (f => {
588+ if (f .url === file .localUrl ) {
589+ f .url = url
590+ }
591+ })
592+
593+ await messagesRef (roomId)
594+ .doc (messageId)
595+ .update ({ files })
577596 }
578- })
597+ )
598+ },
579599
580- await messagesRef (roomId)
581- .doc (messageId)
582- .update ({ files })
600+ updateFileProgress (messageId , progress ) {
601+ const message = this .messages .find (message => message ._id === messageId)
602+ message .files [0 ].progress = progress
603+ this .messages = [... this .messages ]
583604 },
584605
585606 formattedFiles (files ) {
You can’t perform that action at this time.
0 commit comments