From 5d11935a4040e77b660ca4c31e63f8b307a52e21 Mon Sep 17 00:00:00 2001 From: enahum Date: Tue, 9 May 2017 12:20:20 -0300 Subject: [PATCH] Fix DM mark as unread on team switch (#523) --- app/scenes/channel_drawer/channel_drawer.js | 5 ++--- app/scenes/select_team/index.js | 8 ++++++-- app/scenes/select_team/select_team.js | 11 +++++++++-- yarn.lock | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/scenes/channel_drawer/channel_drawer.js b/app/scenes/channel_drawer/channel_drawer.js index 888bc9b93..e60df765e 100644 --- a/app/scenes/channel_drawer/channel_drawer.js +++ b/app/scenes/channel_drawer/channel_drawer.js @@ -30,8 +30,7 @@ export default class ChannelDrawer extends PureComponent { selectChannel = (id) => { const { actions, - currentChannel, - currentTeam + currentChannel } = this.props; const { @@ -44,7 +43,7 @@ export default class ChannelDrawer extends PureComponent { markChannelAsRead(id, currentChannel.id); setChannelLoading(); - viewChannel(currentTeam.id); + viewChannel(id); closeDrawers(); InteractionManager.runAfterInteractions(() => { handleSelectChannel(id); diff --git a/app/scenes/select_team/index.js b/app/scenes/select_team/index.js index 072aa0072..eb91a300b 100644 --- a/app/scenes/select_team/index.js +++ b/app/scenes/select_team/index.js @@ -8,6 +8,8 @@ import navigationSceneConnect from '../navigationSceneConnect'; import {closeDrawers, closeModal, goBack} from 'app/actions/navigation'; import {handleTeamChange} from 'app/actions/views/select_team'; +import {markChannelAsRead} from 'mattermost-redux/actions/channels'; +import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels'; import {getCurrentTeam, getTeams, getTeamMemberships} from 'mattermost-redux/selectors/entities/teams'; import {getCurrentUser} from 'mattermost-redux/selectors/entities/users'; @@ -27,7 +29,8 @@ function mapStateToProps(state) { config: state.entities.general.config, teamsRequest: state.requests.teams.allTeams, teams: myTeams.sort(sortTeams), - currentTeam: getCurrentTeam(state) + currentTeam: getCurrentTeam(state), + currentChannelId: getCurrentChannelId(state) }; } @@ -37,7 +40,8 @@ function mapDispatchToProps(dispatch) { closeDrawers, closeModal, goBack, - handleTeamChange + handleTeamChange, + markChannelAsRead }, dispatch) }; } diff --git a/app/scenes/select_team/select_team.js b/app/scenes/select_team/select_team.js index 1f8cb7c56..41b67d521 100644 --- a/app/scenes/select_team/select_team.js +++ b/app/scenes/select_team/select_team.js @@ -21,6 +21,7 @@ import logo from 'assets/images/logo.png'; export default class SelectTeam extends PureComponent { static propTypes = { config: PropTypes.object.isRequired, + currentChannelId: PropTypes.string, teams: PropTypes.array.isRequired, subscribeToHeaderEvent: PropTypes.func.isRequired, unsubscribeFromHeaderEvent: PropTypes.func.isRequired, @@ -28,7 +29,8 @@ export default class SelectTeam extends PureComponent { closeDrawers: PropTypes.func.isRequired, closeModal: PropTypes.func.isRequired, goBack: PropTypes.func.isRequired, - handleTeamChange: PropTypes.func.isRequired + handleTeamChange: PropTypes.func.isRequired, + markChannelAsRead: PropTypes.func.isRequired }).isRequired }; @@ -67,9 +69,14 @@ export default class SelectTeam extends PureComponent { const { closeDrawers, closeModal, - handleTeamChange + currentChannelId, + handleTeamChange, + markChannelAsRead } = this.props.actions; + if (currentChannelId) { + markChannelAsRead(currentChannelId); + } handleTeamChange(team); closeDrawers(); InteractionManager.runAfterInteractions(closeModal); diff --git a/yarn.lock b/yarn.lock index 4c327ef82..3fcd473eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3518,7 +3518,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/3611e6cc9aeb2501f35f8f59f2cc775f6c553ddf" + resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/91d41649862b77ae5636a35e03908c571c2bb1c7" dependencies: deep-equal "1.0.1" harmony-reflect "1.5.1"