UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

41 lines (30 loc) 1.14 kB
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import {createSelector} from 'reselect'; import {getCurrentUserLocale} from 'selectors/entities/i18n'; import {FileInfo} from 'types/files'; import {GlobalState} from 'types/store'; import {sortFileInfos} from 'utils/file_utils'; function getAllFiles(state: GlobalState) { return state.entities.files.files; } function getFilesIdsForPost(state: GlobalState, postId: string) { if (postId) { return state.entities.files.fileIdsByPostId[postId] || []; } return []; } export function getFilePublicLink(state: GlobalState) { return state.entities.files.filePublicLink; } export function makeGetFilesForPost(): (state: GlobalState, postId: string) => FileInfo[] { return createSelector( getAllFiles, getFilesIdsForPost, getCurrentUserLocale, (allFiles, fileIdsForPost, locale) => { const fileInfos = fileIdsForPost.map((id) => allFiles[id]).filter((id) => Boolean(id)); return sortFileInfos(fileInfos, locale); }, ); }