mattermost-mobile/app/selectors/views.js
Miguel Alatzar ee4b85edcf
[MM-23520] Port mattermost-redux (#4088)
* Remove mattermost-redux

* Move mm-redux files into app/redux

* Add @redux path to tsconfig.json

* Fix imports

* Install missing dependencies

* Fix tsc errors

* Fix i18n_utils test

* Fix more imports

* Remove redux websocket

* Fix tests

* Rename @redux

* Apply changes from mattermost-redux PR 1103

* Remove mattermost-redux mention in template

* Add missing imports

* Rename app/redux/ to app/mm-redux/

* Remove test file

* Fix fetching Sidebar GM profiles

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-03-31 11:09:26 -07:00

58 lines
1.3 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {createSelector} from 'reselect';
import {getCurrentChannelId, getUnreads} from '@mm-redux/selectors/entities/channels';
const emptyDraft = {
draft: '',
files: [],
};
function getChannelDrafts(state) {
return state.views.channel.drafts;
}
function getThreadDrafts(state) {
return state.views.thread.drafts;
}
export const getCurrentChannelDraft = createSelector(
getChannelDrafts,
getCurrentChannelId,
(drafts, currentChannelId) => {
return drafts[currentChannelId] || emptyDraft;
},
);
export function getDraftForChannel(state, channelId) {
const drafts = getChannelDrafts(state);
return drafts[channelId] || emptyDraft;
}
export const getThreadDraft = createSelector(
getThreadDrafts,
(state, rootId) => rootId,
(drafts, rootId) => {
return drafts[rootId] || emptyDraft;
},
);
export function getProfileImageUri(state) {
return state.views.user.profileImageUri;
}
export const getBadgeCount = createSelector(
getUnreads,
({mentionCount, messageCount}) => {
let badgeCount = 0;
if (mentionCount) {
badgeCount = mentionCount;
} else if (messageCount) {
badgeCount = -1;
}
return badgeCount;
},
);