* Some extra work on voice channels interface * Fixing some TODOs * Improving styling of call in channel * Improve calls monitoring * Replacing some of the fontawesome icons with the compass ones * Improving the layout * Migrating to webrtc2 for unified plan * Add screen on and off behavior * Adding incall manager plugin * Moving everything into the products/calls folder * Make products modules routes relatives * Make products modules routes @mmproducts * Removing initiator parameter * Removing trickle parameter * Simplifying code * Removing underscore from private variables * Removing underscore from private things * More simplifications * More simplifications * More simplifications * Changing sha sum for mmjstool * Fixing typo * Migrating simple-peer to typescript * Migrating simple-peer to typescript * Improving the size of the screen share * Adding feature flag to disable the calls feature in mobile * Fixing some tests * Removing obsolte tests * Added call ended support for the post messages * Fixing some warnings in the tests * Adding JoinCall tests * Adding CallMessage tests * Adding CurrentCall unit tests * Adding CallAvatar unit tests * Adding FloatingCallContainer unit tests * Adding StartCall unit tests * Adding EnableDisableCalls unit tests * Adding CallDuration tests * Improving CallDuration tests * Adding CallScreen unit tests * Adding CallOtherActions screen tests * Fixing some dark theme styles * Fixing tests * More robustness around connecting/disconnecting * Adding FormattedRelativeTime tests * Adding tests for ChannelItem * Adding tests for ChannelInfo * Adding selectors tests * Adding reducers unit tests * Adding actions tests * Removing most of the TODOs * Removing another TODO * Updating tests snapshots * Removing the last TODO * Fixed a small problem on pressing while a call is ongoing * Remove all the inlined functions * Replacing usage of isLandscape selector with useWindowDimensions * Removed unnecesary makeStyleSheetFromTheme * Removing unneded properties from call_duration * Fixing possible null channels return from getChannel selector * Moving other inlined functions to its own constant * Simplifiying enable/disable calls component * Improving the behavior when you are in the call of the current channel * Adding missing translation strings * Simplified a bit the EnableDisableCalls component * Moving other inlined functions to its own constant * Updating snapshots * Improving usage of makeStyleSheetFromTheme * Moving data reformating from the rest client to the redux action * Adding calls to the blocklist to the redux-persist * Fixing tests * Updating snapshots * Update file icon name to the last compass icons version * Fix loading state * Only show the call connected if the websocket gets connected * Taking into consideration the indicator bar to position the calls new bars * Making the MoreMessagesButton component aware of calls components * Updating snapshots * Fixing tests * Updating snapshot * Fixing different use cases for start call channel menu * Fixing tests * Ask for confirmation to start a call when you are already in another call * Update app/products/calls/components/floating_call_container.tsx Co-authored-by: Elias Nahum <nahumhbl@gmail.com> * Memoizing userIds in join call * Applying suggestion around combine the blocklist for calls with the one for typing * Adding explicit types to the rest client * Removing unneeded permission * Making updateIntervalInSeconds prop optional in FormattedRelativeTime * Making updateIntervalInSeconds prop optional in CallDuration Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
75 lines
3 KiB
JavaScript
75 lines
3 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {connect} from 'react-redux';
|
|
import {bindActionCreators} from 'redux';
|
|
|
|
import {loadChannelsForTeam, selectInitialChannel} from '@actions/views/channel';
|
|
import {selectDefaultTeam} from '@actions/views/select_team';
|
|
import {Client4} from '@client/rest';
|
|
import {ViewTypes} from '@constants';
|
|
import {getChannelStats} from '@mm-redux/actions/channels';
|
|
import {getCurrentChannelId} from '@mm-redux/selectors/entities/channels';
|
|
import {getServerVersion, getFeatureFlagValue} from '@mm-redux/selectors/entities/general';
|
|
import {getSelectedPost} from '@mm-redux/selectors/entities/posts';
|
|
import {getTheme, isCollapsedThreadsEnabled} from '@mm-redux/selectors/entities/preferences';
|
|
import {getCurrentTeam} from '@mm-redux/selectors/entities/teams';
|
|
import {getCurrentUserId, getCurrentUserRoles, shouldShowTermsOfService} from '@mm-redux/selectors/entities/users';
|
|
import {isMinimumServerVersion} from '@mm-redux/utils/helpers';
|
|
import {isSystemAdmin as checkIsSystemAdmin} from '@mm-redux/utils/user_utils';
|
|
import {loadCalls} from '@mmproducts/calls/store/actions/calls';
|
|
import {getViewingGlobalThreads} from '@selectors/threads';
|
|
|
|
import Channel from './channel';
|
|
|
|
function mapStateToProps(state) {
|
|
const currentTeam = getCurrentTeam(state);
|
|
const currentUserId = getCurrentUserId(state);
|
|
const roles = getCurrentUserId(state) ? getCurrentUserRoles(state) : '';
|
|
const isSystemAdmin = checkIsSystemAdmin(roles);
|
|
const serverVersion = Client4.getServerVersion() || getServerVersion(state);
|
|
|
|
let isSupportedServer = true;
|
|
if (serverVersion) {
|
|
isSupportedServer = isMinimumServerVersion(
|
|
serverVersion,
|
|
ViewTypes.RequiredServer.MAJOR_VERSION,
|
|
ViewTypes.RequiredServer.MIN_VERSION,
|
|
ViewTypes.RequiredServer.PATCH_VERSION,
|
|
);
|
|
}
|
|
|
|
const currentTeamId = currentTeam?.delete_at === 0 ? currentTeam?.id : '';
|
|
const currentChannelId = currentTeam?.delete_at === 0 ? getCurrentChannelId(state) : '';
|
|
const collapsedThreadsEnabled = isCollapsedThreadsEnabled(state);
|
|
const callsFeatureEnabled = getFeatureFlagValue(state, 'CallsMobile') === 'true';
|
|
|
|
return {
|
|
currentChannelId,
|
|
currentTeamId,
|
|
currentUserId,
|
|
isSupportedServer,
|
|
isSystemAdmin,
|
|
selectedPost: getSelectedPost(state),
|
|
collapsedThreadsEnabled,
|
|
showTermsOfService: shouldShowTermsOfService(state),
|
|
teamName: currentTeam?.display_name,
|
|
theme: getTheme(state),
|
|
viewingGlobalThreads: collapsedThreadsEnabled && getViewingGlobalThreads(state),
|
|
callsFeatureEnabled,
|
|
};
|
|
}
|
|
|
|
function mapDispatchToProps(dispatch) {
|
|
return {
|
|
actions: bindActionCreators({
|
|
getChannelStats,
|
|
loadChannelsForTeam,
|
|
selectDefaultTeam,
|
|
selectInitialChannel,
|
|
loadCalls,
|
|
}, dispatch),
|
|
};
|
|
}
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(Channel);
|