export function _abstractMapStateToProps(state: Object) {
const isAnyOverlayVisible = Boolean(getOverlayToRender(state));
const { enabled, notifications } = state['features/notifications'];
+ const { calleeInfoVisible } = state['features/invite'];
return {
- _notifications: enabled && !isAnyOverlayVisible ? notifications : []
+ _notifications: enabled && !isAnyOverlayVisible && !calleeInfoVisible
+ ? notifications : []
};
}
diff --git a/react/features/presence-status/components/PresenceLabel.js b/react/features/presence-status/components/PresenceLabel.js
index 0140d2079..c4fb340ad 100644
--- a/react/features/presence-status/components/PresenceLabel.js
+++ b/react/features/presence-status/components/PresenceLabel.js
@@ -4,6 +4,7 @@ import { connect } from 'react-redux';
import { translate } from '../../base/i18n';
import { getParticipantById } from '../../base/participants';
+import { Text } from '../../base/react';
import { STATUS_TO_I18N_KEY } from '../constants';
@@ -35,11 +36,27 @@ class PresenceLabel extends Component {
*/
_presence: PropTypes.string,
+ /**
+ * Default presence status that will be displayed if user's presence
+ * status is not available.
+ */
+ defaultPresence: PropTypes.string,
+
+ /**
+ * Styles for the case where there isn't any content to be shown.
+ */
+ noContentStyles: PropTypes.object,
+
/**
* The ID of the participant whose presence status shoul display.
*/
participantID: PropTypes.string,
+ /**
+ * Styles for the presence label.
+ */
+ styles: PropTypes.object,
+
/**
* Invoked to obtain translated strings.
*/
@@ -53,14 +70,13 @@ class PresenceLabel extends Component {
* @returns {ReactElement}
*/
render() {
- const { _presence } = this.props;
+ const { _presence, styles, noContentStyles } = this.props;
+ const combinedStyles = _presence ? styles : noContentStyles;
return (
-
+
{ this._getPresenceText() }
-
+
);
}
@@ -102,7 +118,8 @@ function _mapStateToProps(state, ownProps) {
const participant = getParticipantById(state, ownProps.participantID);
return {
- _presence: participant && participant.presence
+ _presence:
+ (participant && participant.presence) || ownProps.defaultPresence
};
}
diff --git a/react/features/presence-status/constants.js b/react/features/presence-status/constants.js
index c3fc9d42f..351594f2d 100644
--- a/react/features/presence-status/constants.js
+++ b/react/features/presence-status/constants.js
@@ -122,5 +122,6 @@ export const STATUS_TO_I18N_KEY = {
[CONNECTING]: 'presenceStatus.connecting',
[CONNECTING2]: 'presenceStatus.connecting2',
[CONNECTED_PHONE_NUMBER]: 'presenceStatus.connected',
+ [CONNECTED_USER]: 'presenceStatus.connected',
[DISCONNECTED]: 'presenceStatus.disconnected'
};
diff --git a/react/features/toolbox/actions.web.js b/react/features/toolbox/actions.web.js
index 78fd7c2d9..d9ec84d9d 100644
--- a/react/features/toolbox/actions.web.js
+++ b/react/features/toolbox/actions.web.js
@@ -89,7 +89,7 @@ export function hideToolbox(force: boolean = false): Function {
if (!force
&& (hovered
- || state['features/base/jwt'].calleeInfoVisible
+ || state['features/invite'].calleeInfoVisible
|| SideContainerToggler.isVisible())) {
dispatch(
setToolboxTimeout(