From 68c2c9be407b3db2f0feecac730fd381e54593ec Mon Sep 17 00:00:00 2001 From: trippledave Date: Fri, 19 Mar 2021 08:17:37 +0100 Subject: [PATCH] feat(flags) add feature flag for audio-only button --- react/features/base/flags/constants.js | 6 ++++++ .../toolbox/components/native/AudioOnlyButton.js | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/react/features/base/flags/constants.js b/react/features/base/flags/constants.js index e126d9b7b..445785274 100644 --- a/react/features/base/flags/constants.js +++ b/react/features/base/flags/constants.js @@ -19,6 +19,12 @@ export const AUDIO_FOCUS_DISABLED = 'audio-focus.disabled'; */ export const AUDIO_MUTE_BUTTON_ENABLED = 'audio-mute.enabled'; +/** + * Flag indicating that the Audio only button in the overflow menu is enabled. + * Default: enabled (true). + */ +export const AUDIO_ONLY_BUTTON_ENABLED = 'audio-only.enabled'; + /** * Flag indicating if calendar integration should be enabled. * Default: enabled (true) on Android, auto-detected on iOS. diff --git a/react/features/toolbox/components/native/AudioOnlyButton.js b/react/features/toolbox/components/native/AudioOnlyButton.js index 29fe05ea5..eb49db51f 100644 --- a/react/features/toolbox/components/native/AudioOnlyButton.js +++ b/react/features/toolbox/components/native/AudioOnlyButton.js @@ -1,6 +1,7 @@ // @flow import { toggleAudioOnly } from '../../../base/audio-only'; +import { AUDIO_ONLY_BUTTON_ENABLED, getFeatureFlag } from '../../../base/flags'; import { translate } from '../../../base/i18n'; import { IconAudioOnly, IconAudioOnlyOff } from '../../../base/icons'; import { connect } from '../../../base/redux'; @@ -60,16 +61,20 @@ class AudioOnlyButton extends AbstractButton { * {@code AudioOnlyButton} component. * * @param {Object} state - The Redux state. + * @param {Object} ownProps - The properties explicitly passed to the component instance. * @private * @returns {{ * _audioOnly: boolean * }} */ -function _mapStateToProps(state): Object { +function _mapStateToProps(state, ownProps): Object { const { enabled: audioOnly } = state['features/base/audio-only']; + const enabledInFeatureFlags = getFeatureFlag(state, AUDIO_ONLY_BUTTON_ENABLED, true); + const { visible = enabledInFeatureFlags } = ownProps; return { - _audioOnly: Boolean(audioOnly) + _audioOnly: Boolean(audioOnly), + visible }; }