@@ -400,7 +400,8 @@ export default {
400
400
newMessages: [],
401
401
recorderStream: {},
402
402
recorder: {},
403
- recordedChunks: []
403
+ recordedChunks: [],
404
+ keepMobileKeyboardOpen: false ,
404
405
}
405
406
},
406
407
@@ -418,6 +419,15 @@ export default {
418
419
}
419
420
})
420
421
422
+ if (detectMobile ()) {
423
+ this .$refs [' roomTextarea' ].addEventListener (' blur' , e => {
424
+ setTimeout (() => this .keepMobileKeyboardOpen = false , 0 )
425
+ })
426
+ this .$refs [' roomTextarea' ].addEventListener (' click' , e => {
427
+ this .keepMobileKeyboardOpen = true
428
+ })
429
+ }
430
+
421
431
this .$refs .scrollContainer .addEventListener (' scroll' , e => {
422
432
this .hideOptions = true
423
433
setTimeout (() => {
@@ -628,6 +638,7 @@ export default {
628
638
this .imageDimensions = null
629
639
this .imageFile = null
630
640
this .emojiOpened = false
641
+ this .preventMobileKeyboardFromClosing ()
631
642
setTimeout (() => this .focusTextarea (disableMobileFocus), 0 )
632
643
},
633
644
resetImageFile () {
@@ -650,6 +661,11 @@ export default {
650
661
isMessageEmpty () {
651
662
return ! this .file && ! this .message .trim ()
652
663
},
664
+ preventMobileKeyboardFromClosing () {
665
+ if (this .keepMobileKeyboardOpen ) {
666
+ this .$refs [' roomTextarea' ].focus ()
667
+ }
668
+ },
653
669
sendMessage () {
654
670
if (! this .file && ! this .message .trim ()) return
655
671
@@ -716,6 +732,7 @@ export default {
716
732
element .scrollTo ({ top: element .scrollHeight , behavior: ' smooth' })
717
733
},
718
734
onChangeInput () {
735
+ this .keepMobileKeyboardOpen = true
719
736
this .resizeTextarea ()
720
737
this .$emit (' typing-message' , this .message )
721
738
},
0 commit comments