From 6eb9920758894659a3850ceafe55b91bae4f2260 Mon Sep 17 00:00:00 2001 From: enahum Date: Sun, 26 Mar 2017 23:06:47 -0300 Subject: [PATCH] Search DM's using profiles and not search store (#402) * Fix localization strings * Make DM search to use the profiles instead of the search store --- app/initial_state.js | 3 +-- app/scenes/channel_members/channel_members.js | 18 ++++-------------- app/scenes/more_dms/index.js | 2 -- app/scenes/more_dms/more_dms.js | 15 ++++++++++----- assets/base/i18n/en.json | 6 +++--- 5 files changed, 18 insertions(+), 26 deletions(-) diff --git a/app/initial_state.js b/app/initial_state.js index 370482f10..2bb894290 100644 --- a/app/initial_state.js +++ b/app/initial_state.js @@ -23,8 +23,7 @@ const state = { profilesInTeam: {}, profilesInChannel: {}, profilesNotInChannel: {}, - statuses: {}, - search: {} + statuses: {} }, teams: { currentTeamId: '', diff --git a/app/scenes/channel_members/channel_members.js b/app/scenes/channel_members/channel_members.js index 963a32993..1080d965d 100644 --- a/app/scenes/channel_members/channel_members.js +++ b/app/scenes/channel_members/channel_members.js @@ -85,16 +85,11 @@ class ChannelMembers extends PureComponent { Alert.alert( formatMessage({ id: 'mobile.routes.channel_members.action', - defaultMessage: '{term} Members' - }, { - term: 'Remove' + defaultMessage: 'Remove Members' }), formatMessage({ id: 'mobile.routes.channel_members.action_message', - defaultMessage: 'You must select at least one member to {term} {prep} the channel.' - }, { - term: 'remove', - prep: 'from' + defaultMessage: 'You must select at least one member to remove from the channel.' }) ); return; @@ -103,16 +98,11 @@ class ChannelMembers extends PureComponent { Alert.alert( formatMessage({ id: 'mobile.routes.channel_members.action', - defaultMessage: '{term} Members' - }, { - term: 'Remove' + defaultMessage: 'Remove Members' }), formatMessage({ id: 'mobile.routes.channel_members.action_message_confirm', - defaultMessage: 'Are you sure you want to {term} the selected members {prep} the channel?' - }, { - term: 'remove', - prep: 'from' + defaultMessage: 'Are you sure you want to remove the selected members from the channel?' }), [{ text: formatMessage({id: 'mobile.channel_list.alertNo', defaultMessage: 'No'}) diff --git a/app/scenes/more_dms/index.js b/app/scenes/more_dms/index.js index 466ff4dc2..6534dbbba 100644 --- a/app/scenes/more_dms/index.js +++ b/app/scenes/more_dms/index.js @@ -10,7 +10,6 @@ import {makeDirectChannel} from 'app/actions/views/more_dms'; import {getTheme} from 'app/selectors/preferences'; import {getProfiles, searchProfiles} from 'mattermost-redux/actions/users'; import {getMyPreferences} from 'mattermost-redux/selectors/entities/preferences'; -import {searchProfiles as searchSelector} from 'mattermost-redux/selectors/entities/users'; import MoreDirectMessages from './more_dms'; @@ -33,7 +32,6 @@ function mapStateToProps(state, ownProps) { ...ownProps, preferences: getMyPreferences(state), profiles: getUsers(), - search: searchSelector(state), theme: getTheme(state), requestStatus, searchRequest diff --git a/app/scenes/more_dms/more_dms.js b/app/scenes/more_dms/more_dms.js index c875c63ea..d2a98adca 100644 --- a/app/scenes/more_dms/more_dms.js +++ b/app/scenes/more_dms/more_dms.js @@ -26,7 +26,6 @@ class MoreDirectMessages extends PureComponent { preferences: PropTypes.object.isRequired, theme: PropTypes.object.isRequired, profiles: PropTypes.array, - search: PropTypes.array, requestStatus: PropTypes.object.isRequired, searchRequest: PropTypes.object.isRequired, subscribeToHeaderEvent: React.PropTypes.func.isRequired, @@ -83,7 +82,12 @@ class MoreDirectMessages extends PureComponent { this.setState({profiles}); } else if (this.state.searching && nextProps.searchRequest.status === RequestStatus.SUCCESS) { - this.setState({profiles: nextProps.search}); + const results = nextProps.profiles.filter((p) => { + const {term} = this.state; + return p.username.toLowerCase().includes(term) || p.email.toLowerCase().includes(term) || + p.first_name.toLowerCase().includes(term) || p.last_name.toLowerCase().includes(term); + }); + this.setState({profiles: results}); } } @@ -121,7 +125,7 @@ class MoreDirectMessages extends PureComponent { const term = event.nativeEvent.text; if (term) { - this.setState({searching: true}); + this.setState({searching: true, term: term.toLowerCase()}); clearTimeout(this.searchTimeoutId); this.searchTimeoutId = setTimeout(() => { @@ -133,10 +137,11 @@ class MoreDirectMessages extends PureComponent { }; cancelSearch = () => { - this.props.actions.getProfiles(0); this.setState({ searching: false, - page: 0 + term: null, + page: 0, + profiles: this.props.profiles }); }; diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 1695dd523..171c7ed89 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -1543,9 +1543,9 @@ "mobile.routes.channelInfo.createdBy": "Created by {creator} on ", "mobile.routes.channelInfo.delete_channel": "Delete Channel", "mobile.routes.channelInfo.favorite": "Favorite", - "mobile.routes.channel_members.action": "{term} Members", - "mobile.routes.channel_members.action_message": "You must select at least one member to {term} {prep} the channel.", - "mobile.routes.channel_members.action_message_confirm": "Are you sure you want to {term} the selected members {prep} the channel?", + "mobile.routes.channel_members.action": "Remove Members", + "mobile.routes.channel_members.action_message": "You must select at least one member to remove from the channel.", + "mobile.routes.channel_members.action_message_confirm": "Are you sure you want to remove the selected members from the channel?", "mobile.routes.thread": "{channelName} Thread", "mobile.routes.thread_dm": "Direct Message Thread", "mobile.routes.user_profile": "Profile",