mattermost-mobile/app/mm-redux/selectors/entities/common.ts
Daniel Espino García 4c8594d330
Add linter rules for import order and type member delimiters (#5514)
* Add linter rules for import order and type member delimiters

* Remove unneeded group

* Group all app/* imports before the internal imports

* Move app/ imports before parent imports

* Separate @node_modules imports into a different group

* Substitute app paths by aliases

* Fix @node_modules import order and add test related modules

* Add aliases for types and test, and group import types
2021-07-23 11:06:04 +02:00

36 lines
1.3 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {createSelector} from 'reselect';
import {ChannelMembership, Channel} from '@mm-redux/types/channels';
import {GlobalState} from '@mm-redux/types/store';
import {UserProfile} from '@mm-redux/types/users';
import {RelationOneToOne, IDMappedObjects} from '@mm-redux/types/utilities';
// Channels
export function getCurrentChannelId(state: GlobalState): string {
return state.entities.channels.currentChannelId;
}
export function getMyChannelMemberships(state: GlobalState): RelationOneToOne<Channel, ChannelMembership> {
return state.entities.channels.myMembers;
}
export const getMyCurrentChannelMembership: (a: GlobalState) => ChannelMembership | undefined | null = createSelector(getCurrentChannelId, getMyChannelMemberships, (currentChannelId, channelMemberships) => {
return channelMemberships[currentChannelId] || null;
});
// Users
export function getCurrentUser(state: GlobalState): UserProfile {
return state.entities.users.profiles[getCurrentUserId(state)];
}
export function getCurrentUserId(state: GlobalState): string {
return state.entities.users.currentUserId;
}
export function getUsers(state: GlobalState): IDMappedObjects<UserProfile> {
return state.entities.users.profiles;
}