diff --git a/packages/rocketchat-ui-message/startup/messageBoxActions.js b/packages/rocketchat-ui-message/startup/messageBoxActions.js index 878dd2207ed..d10e17f5d32 100644 --- a/packages/rocketchat-ui-message/startup/messageBoxActions.js +++ b/packages/rocketchat-ui-message/startup/messageBoxActions.js @@ -1,4 +1,4 @@ -/* globals fileUpload chatMessages AudioRecorder device */ +/* globals fileUpload chatMessages AudioRecorder device popover */ import mime from 'mime-type/with-db'; import {VRecDialog} from 'meteor/rocketchat:ui-vrecord'; @@ -18,13 +18,15 @@ RocketChat.messageBox.actions.add('Create_new', 'Audio_message', { condition: () => (navigator.getUserMedia || navigator.webkitGetUserMedia) && RocketChat.settings.get('FileUpload_Enabled') && RocketChat.settings.get('Message_AudioRecorderEnabled') && (!RocketChat.settings.get('FileUpload_MediaTypeWhiteList') || RocketChat.settings.get('FileUpload_MediaTypeWhiteList').match(/audio\/wav|audio\/\*/i)), action({event, element}) { event.preventDefault(); - const icon = element; + const icon = element.querySelector('.rc-icon'); + if (chatMessages[RocketChat.openedRoom].recording) { - return AudioRecorder.stop(function(blob) { + AudioRecorder.stop(function(blob) { + popover.close(); icon.style.color = ''; icon.classList.remove('pulse'); chatMessages[RocketChat.openedRoom].recording = false; - return fileUpload([ + fileUpload([ { file: blob, type: 'audio', @@ -32,9 +34,11 @@ RocketChat.messageBox.actions.add('Create_new', 'Audio_message', { } ]); }); + return false; } + chatMessages[RocketChat.openedRoom].recording = true; - return AudioRecorder.start(function() { + AudioRecorder.start(function() { icon.classList.add('pulse'); icon.style.color = 'red'; }); @@ -71,7 +75,7 @@ RocketChat.messageBox.actions.add('Add_files_from', 'Computer', { name: file.name }; }); - return fileUpload(filesToUpload); + fileUpload(filesToUpload); }, {once: true}); input.remove(); @@ -87,7 +91,7 @@ RocketChat.messageBox.actions.add('Share', 'My_location', { const latitude = position.coords.latitude; const longitude = position.coords.longitude; const text = `