Added support for new system-wide teammate name display setting (#709)
This commit is contained in:
parent
f8eb3bf8bd
commit
bd2c623775
14 changed files with 50 additions and 48 deletions
|
|
@ -35,7 +35,7 @@ class FilteredList extends Component {
|
|||
currentChannel: PropTypes.object,
|
||||
groupChannels: PropTypes.array,
|
||||
intl: intlShape.isRequired,
|
||||
myPreferences: PropTypes.object,
|
||||
teammateNameDisplay: PropTypes.string,
|
||||
onSelectChannel: PropTypes.func.isRequired,
|
||||
otherChannels: PropTypes.array,
|
||||
profiles: PropTypes.oneOfType(
|
||||
|
|
@ -178,11 +178,11 @@ class FilteredList extends Component {
|
|||
};
|
||||
|
||||
buildFakeDms = (props) => {
|
||||
const {currentUserId, myPreferences, profiles, statuses} = props;
|
||||
const {currentUserId, teammateNameDisplay, profiles, statuses} = props;
|
||||
const users = Object.values(profiles).filter((p) => p.id !== currentUserId);
|
||||
|
||||
return users.map((u) => {
|
||||
const displayName = displayUsername(u, myPreferences);
|
||||
const displayName = displayUsername(u, teammateNameDisplay);
|
||||
|
||||
return {
|
||||
id: u.id,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import {General} from 'mattermost-redux/constants';
|
|||
import {getGroupChannels, getOtherChannels} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getProfilesInCurrentTeam, getUsers, getUserStatuses} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
|
||||
|
||||
import FilteredList from './filtered_list';
|
||||
|
||||
|
|
@ -30,7 +30,7 @@ function mapStateToProps(state, ownProps) {
|
|||
otherChannels: getOtherChannels(state),
|
||||
groupChannels: getGroupChannels(state),
|
||||
profiles,
|
||||
myPreferences: getMyPreferences(state),
|
||||
teammateNameDisplay: getTeammateNameDisplaySetting(state),
|
||||
statuses: getUserStatuses(state),
|
||||
...ownProps
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ export default class CustomList extends PureComponent {
|
|||
onRowPress: PropTypes.func,
|
||||
onListEndReached: PropTypes.func,
|
||||
onListEndReachedThreshold: PropTypes.number,
|
||||
preferences: PropTypes.object,
|
||||
teammateNameDisplay: PropTypes.string,
|
||||
loading: PropTypes.bool,
|
||||
loadingText: PropTypes.object,
|
||||
listPageSize: PropTypes.number,
|
||||
|
|
@ -119,7 +119,7 @@ export default class CustomList extends PureComponent {
|
|||
rowData,
|
||||
sectionId,
|
||||
rowId,
|
||||
this.props.preferences,
|
||||
this.props.teammateNameDisplay,
|
||||
this.props.theme,
|
||||
this.props.selectable,
|
||||
this.props.onRowPress,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import {connect} from 'react-redux';
|
|||
import {bindActionCreators} from 'redux';
|
||||
|
||||
import {createPost, deletePost, flagPost, removePost, unflagPost} from 'mattermost-redux/actions/posts';
|
||||
import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getMyPreferences, getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {makeGetCommentCountForPost} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getCurrentUserId, getCurrentUserRoles, getUser} from 'mattermost-redux/selectors/entities/users';
|
||||
import {isPostFlagged} from 'mattermost-redux/utils/post_utils';
|
||||
|
|
@ -22,6 +22,7 @@ function makeMapStateToProps() {
|
|||
const commentedOnUser = ownProps.commentedOnPost ? getUser(state, ownProps.commentedOnPost.user_id) : null;
|
||||
const user = getUser(state, ownProps.post.user_id);
|
||||
const myPreferences = getMyPreferences(state);
|
||||
const teammateNameDisplay = getTeammateNameDisplaySetting(state);
|
||||
const {config, license} = state.entities.general;
|
||||
const roles = getCurrentUserId(state) ? getCurrentUserRoles(state) : '';
|
||||
const {tooltipVisible} = state.views.channel;
|
||||
|
|
@ -30,9 +31,9 @@ function makeMapStateToProps() {
|
|||
...ownProps,
|
||||
config,
|
||||
commentCount: getCommentCountForPost(state, ownProps),
|
||||
commentedOnDisplayName: displayUsername(commentedOnUser, myPreferences),
|
||||
commentedOnDisplayName: displayUsername(commentedOnUser, teammateNameDisplay),
|
||||
currentUserId: getCurrentUserId(state),
|
||||
displayName: displayUsername(user, myPreferences),
|
||||
displayName: displayUsername(user, teammateNameDisplay),
|
||||
isFlagged: isPostFlagged(ownProps.post.id, myPreferences),
|
||||
license,
|
||||
roles,
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class ChannelMembers extends PureComponent {
|
|||
currentChannelMembers: PropTypes.array.isRequired,
|
||||
currentUserId: PropTypes.string.isRequired,
|
||||
navigator: PropTypes.object,
|
||||
preferences: PropTypes.object,
|
||||
teammateNameDisplay: PropTypes.string,
|
||||
requestStatus: PropTypes.string,
|
||||
searchRequestStatus: PropTypes.string,
|
||||
removeMembersStatus: PropTypes.string,
|
||||
|
|
@ -203,16 +203,17 @@ class ChannelMembers extends PureComponent {
|
|||
let {page} = this.state;
|
||||
if (requestStatus !== RequestStatus.STARTED && next && !searching) {
|
||||
page = page + 1;
|
||||
actions.getProfilesInChannel(currentChannel.id, page, General.PROFILE_CHUNK_SIZE).
|
||||
then((data) => {
|
||||
if (data && data.length) {
|
||||
this.setState({
|
||||
page
|
||||
});
|
||||
} else {
|
||||
this.setState({next: false});
|
||||
actions.getProfilesInChannel(currentChannel.id, page, General.PROFILE_CHUNK_SIZE).then(
|
||||
(data) => {
|
||||
if (data && data.length) {
|
||||
this.setState({
|
||||
page
|
||||
});
|
||||
} else {
|
||||
this.setState({next: false});
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -229,9 +230,9 @@ class ChannelMembers extends PureComponent {
|
|||
actions.handleRemoveChannelMembers(currentChannel.id, membersToRemove);
|
||||
};
|
||||
|
||||
renderMemberRow = (user, sectionId, rowId, preferences, theme, selectable, onPress, onSelect) => {
|
||||
renderMemberRow = (user, sectionId, rowId, teammateNameDisplay, theme, selectable, onPress, onSelect) => {
|
||||
const {id, username} = user;
|
||||
const displayName = displayUsername(user, preferences);
|
||||
const displayName = displayUsername(user, teammateNameDisplay);
|
||||
let onRowSelect = null;
|
||||
if (selectable) {
|
||||
onRowSelect = () => onSelect(sectionId, rowId);
|
||||
|
|
@ -271,7 +272,7 @@ class ChannelMembers extends PureComponent {
|
|||
};
|
||||
|
||||
render() {
|
||||
const {canManageUsers, intl, preferences, requestStatus, searchRequestStatus, theme} = this.props;
|
||||
const {canManageUsers, intl, teammateNameDisplay, requestStatus, searchRequestStatus, theme} = this.props;
|
||||
const {formatMessage} = intl;
|
||||
const {profiles, removing, searching, showNoResults, term} = this.state;
|
||||
const isLoading = (requestStatus === RequestStatus.STARTED) || (requestStatus.status === RequestStatus.NOT_STARTED) ||
|
||||
|
|
@ -320,7 +321,7 @@ class ChannelMembers extends PureComponent {
|
|||
theme={theme}
|
||||
searching={searching}
|
||||
onListEndReached={more}
|
||||
preferences={preferences}
|
||||
teammateNameDisplay={teammateNameDisplay}
|
||||
listScrollRenderAheadDistance={50}
|
||||
loading={isLoading}
|
||||
loadingText={loadingText}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import {connect} from 'react-redux';
|
|||
import {handleRemoveChannelMembers} from 'app/actions/views/channel_members';
|
||||
import {getTheme} from 'app/selectors/preferences';
|
||||
import {getCurrentChannel, canManageChannelMembers} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getProfilesInCurrentChannel} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getProfilesInChannel, searchProfiles} from 'mattermost-redux/actions/users';
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ function mapStateToProps(state) {
|
|||
currentChannel: getCurrentChannel(state) || {},
|
||||
currentChannelMembers: getProfilesInCurrentChannel(state),
|
||||
currentUserId: state.entities.users.currentUserId,
|
||||
preferences: getMyPreferences(state),
|
||||
teammateNameDisplay: getTeammateNameDisplaySetting(state),
|
||||
requestStatus: state.requests.users.getProfilesInChannel.status,
|
||||
searchRequestStatus: state.requests.users.searchProfiles.status,
|
||||
removeMembersStatus: state.requests.channels.removeChannelMember.status,
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import {getTheme} from 'app/selectors/preferences';
|
|||
import {getProfiles, getProfilesInTeam, searchProfiles} from 'mattermost-redux/actions/users';
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId, getProfilesInCurrentTeam, getUsers} from 'mattermost-redux/selectors/entities/users';
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ function mapStateToProps(state, ownProps) {
|
|||
return {
|
||||
...ownProps,
|
||||
config,
|
||||
preferences: getMyPreferences(state),
|
||||
teammateNameDisplay: getTeammateNameDisplaySetting(state),
|
||||
profiles,
|
||||
theme: getTheme(state),
|
||||
currentDisplayName: state.views.channel.displayName,
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class MoreDirectMessages extends PureComponent {
|
|||
navigator: PropTypes.object,
|
||||
config: PropTypes.object.isRequired,
|
||||
currentTeamId: PropTypes.string.isRequired,
|
||||
preferences: PropTypes.object.isRequired,
|
||||
teammateNameDisplay: PropTypes.string,
|
||||
theme: PropTypes.object.isRequired,
|
||||
profiles: PropTypes.array,
|
||||
getRequest: PropTypes.object.isRequired,
|
||||
|
|
@ -153,7 +153,7 @@ class MoreDirectMessages extends PureComponent {
|
|||
};
|
||||
|
||||
onSelectMember = async (id) => {
|
||||
const {actions, currentDisplayName, intl, preferences, profiles} = this.props;
|
||||
const {actions, currentDisplayName, intl, teammateNameDisplay, profiles} = this.props;
|
||||
const user = profiles.find((p) => p.id === id);
|
||||
|
||||
this.setState({adding: true});
|
||||
|
|
@ -161,7 +161,7 @@ class MoreDirectMessages extends PureComponent {
|
|||
// save the current channel display name in case it fails
|
||||
const currentChannelDisplayName = currentDisplayName;
|
||||
|
||||
const userDisplayName = displayUsername(user, preferences);
|
||||
const userDisplayName = displayUsername(user, teammateNameDisplay);
|
||||
|
||||
if (user) {
|
||||
actions.setChannelDisplayName(userDisplayName);
|
||||
|
|
@ -196,7 +196,7 @@ class MoreDirectMessages extends PureComponent {
|
|||
render() {
|
||||
const {
|
||||
intl,
|
||||
preferences,
|
||||
teammateNameDisplay,
|
||||
getRequest,
|
||||
searchRequest,
|
||||
theme
|
||||
|
|
@ -257,7 +257,7 @@ class MoreDirectMessages extends PureComponent {
|
|||
theme={theme}
|
||||
searching={searching}
|
||||
onListEndReached={more}
|
||||
preferences={preferences}
|
||||
teammateNameDisplay={teammateNameDisplay}
|
||||
loading={isLoading}
|
||||
selectable={false}
|
||||
listScrollRenderAheadDistance={50}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import {goToNotification} from 'app/actions/views/root';
|
|||
import {getTheme} from 'app/selectors/preferences';
|
||||
|
||||
import {getChannel} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getUser} from 'mattermost-redux/selectors/entities/users';
|
||||
|
||||
import Notification from './notification';
|
||||
|
|
@ -31,7 +31,7 @@ function mapStateToProps(state, ownProps) {
|
|||
config: state.entities.general.config,
|
||||
channel,
|
||||
user,
|
||||
myPreferences: getMyPreferences(state),
|
||||
teammateNameDisplay: getTeammateNameDisplaySetting(state),
|
||||
theme: getTheme(state)
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ export default class Notification extends PureComponent {
|
|||
channel: PropTypes.object,
|
||||
config: PropTypes.object,
|
||||
notification: PropTypes.object.isRequired,
|
||||
myPreferences: PropTypes.object.isRequired,
|
||||
teammateNameDisplay: PropTypes.string,
|
||||
navigator: PropTypes.object,
|
||||
theme: PropTypes.object.isRequired,
|
||||
user: PropTypes.object
|
||||
|
|
@ -139,7 +139,7 @@ export default class Notification extends PureComponent {
|
|||
};
|
||||
|
||||
getNotificationUserName = () => {
|
||||
const {config, notification, myPreferences, user} = this.props;
|
||||
const {config, notification, teammateNameDisplay, user} = this.props;
|
||||
const {data} = notification;
|
||||
|
||||
let userName;
|
||||
|
|
@ -152,7 +152,7 @@ export default class Notification extends PureComponent {
|
|||
} else if (user) {
|
||||
userName = (
|
||||
<Text style={style.title}>
|
||||
{displayUsername(user, myPreferences)}
|
||||
{displayUsername(user, teammateNameDisplay)}
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import {makeDirectChannel} from 'app/actions/views/more_dms';
|
|||
import {getTheme} from 'app/selectors/preferences';
|
||||
|
||||
import {getCurrentChannel} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
|
||||
import UserProfile from './user_profile';
|
||||
|
|
@ -26,7 +26,7 @@ function mapStateToProps(state, ownProps) {
|
|||
currentDisplayName: state.views.channel.displayName,
|
||||
currentUserId: getCurrentUserId(state),
|
||||
user: state.entities.users.profiles[ownProps.userId],
|
||||
myPreferences: getMyPreferences(state),
|
||||
teammateNameDisplay: getTeammateNameDisplaySetting(state),
|
||||
theme: getTheme(state)
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class UserProfile extends PureComponent {
|
|||
createChannelRequest: PropTypes.object.isRequired,
|
||||
intl: intlShape.isRequired,
|
||||
navigator: PropTypes.object,
|
||||
myPreferences: PropTypes.object,
|
||||
teammateNameDisplay: PropTypes.string,
|
||||
theme: PropTypes.object.isRequired,
|
||||
user: PropTypes.object.isRequired
|
||||
};
|
||||
|
|
@ -46,10 +46,10 @@ class UserProfile extends PureComponent {
|
|||
};
|
||||
|
||||
getDisplayName = () => {
|
||||
const {theme, myPreferences, user} = this.props;
|
||||
const {theme, teammateNameDisplay, user} = this.props;
|
||||
const style = createStyleSheet(theme);
|
||||
|
||||
const displayName = displayUsername(user, myPreferences);
|
||||
const displayName = displayUsername(user, teammateNameDisplay);
|
||||
|
||||
if (displayName) {
|
||||
return <Text style={style.displayName}>{displayName}</Text>;
|
||||
|
|
@ -75,12 +75,12 @@ class UserProfile extends PureComponent {
|
|||
};
|
||||
|
||||
sendMessage = async () => {
|
||||
const {actions, currentDisplayName, intl, myPreferences, navigator, user} = this.props;
|
||||
const {actions, currentDisplayName, intl, teammateNameDisplay, navigator, user} = this.props;
|
||||
|
||||
// save the current channel display name in case it fails
|
||||
const currentChannelDisplayName = currentDisplayName;
|
||||
|
||||
const userDisplayName = displayUsername(user, myPreferences);
|
||||
const userDisplayName = displayUsername(user, teammateNameDisplay);
|
||||
actions.setChannelDisplayName(userDisplayName);
|
||||
|
||||
const result = await actions.makeDirectChannel(user.id);
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ export function createMembersSections(data) {
|
|||
return sections;
|
||||
}
|
||||
|
||||
export function renderMemberRow(user, sectionId, rowId, preferences, theme, selectable, onPress, onSelect) {
|
||||
export function renderMemberRow(user, sectionId, rowId, teammateNameDisplay, theme, selectable, onPress, onSelect) {
|
||||
const {id, username} = user;
|
||||
const displayName = displayUsername(user, preferences);
|
||||
const displayName = displayUsername(user, teammateNameDisplay);
|
||||
let onRowSelect = null;
|
||||
if (selectable) {
|
||||
onRowSelect = () => onSelect(sectionId, rowId);
|
||||
|
|
|
|||
|
|
@ -3645,7 +3645,7 @@ makeerror@1.0.x:
|
|||
|
||||
mattermost-redux@mattermost/mattermost-redux#master:
|
||||
version "0.0.1"
|
||||
resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/f996792ab8b1ab81ad0de76cf1a4f0a13c33a100"
|
||||
resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/aa2841b7b75fd08c9819ac14a9d27d4f6baa959a"
|
||||
dependencies:
|
||||
deep-equal "1.0.1"
|
||||
harmony-reflect "1.5.1"
|
||||
|
|
|
|||
Loading…
Reference in a new issue