From cc0ecc1fddd8c5742b1bd37094581da44771fd1a Mon Sep 17 00:00:00 2001 From: "Tudor D. Pop" Date: Fri, 26 Feb 2021 17:03:51 +0200 Subject: [PATCH] fix(blur) disable blur button if camera is off --- .../blur/components/VideoBlurButton.js | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/react/features/blur/components/VideoBlurButton.js b/react/features/blur/components/VideoBlurButton.js index db734d70b..c2793506d 100644 --- a/react/features/blur/components/VideoBlurButton.js +++ b/react/features/blur/components/VideoBlurButton.js @@ -6,6 +6,7 @@ import { IconBlurBackground } from '../../base/icons'; import { connect } from '../../base/redux'; import { AbstractButton } from '../../base/toolbox/components'; import type { AbstractButtonProps } from '../../base/toolbox/components'; +import { isLocalCameraTrackMuted } from '../../base/tracks'; import { toggleBlurEffect } from '../actions'; /** @@ -18,6 +19,11 @@ type Props = AbstractButtonProps & { */ _isVideoBlurred: boolean, + /** + * Whether video is currently muted or not. + */ + _videoMuted: boolean, + /** * The redux {@code dispatch} function. */ @@ -60,6 +66,17 @@ class VideoBlurButton extends AbstractButton { _isToggled() { return this.props._isVideoBlurred; } + + /** + * Returns {@code boolean} value indicating if disabled state is + * enabled or not. + * + * @protected + * @returns {boolean} + */ + _isDisabled() { + return this.props._videoMuted; + } } /** @@ -73,9 +90,13 @@ class VideoBlurButton extends AbstractButton { * }} */ function _mapStateToProps(state): Object { + const tracks = state['features/base/tracks']; + return { - _isVideoBlurred: Boolean(state['features/blur'].blurEnabled) + _isVideoBlurred: Boolean(state['features/blur'].blurEnabled), + _videoMuted: isLocalCameraTrackMuted(tracks) }; } export default translate(connect(_mapStateToProps)(VideoBlurButton)); +