UNPKG

mattermost-redux

Version:

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

59 lines (58 loc) 2.73 kB
"use strict"; // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.getSearchFilesResults = void 0; exports.getFile = getFile; exports.getFilePublicLink = getFilePublicLink; exports.getRejectedFiles = getRejectedFiles; exports.isFileRejected = isFileRejected; exports.makeGetFileIdsForPost = makeGetFileIdsForPost; exports.makeGetFilesForPost = makeGetFilesForPost; exports.makeGetFilesForEditHistory = makeGetFilesForEditHistory; const create_selector_1 = require("mattermost-redux/selectors/create_selector"); const i18n_1 = require("mattermost-redux/selectors/entities/i18n"); const file_utils_1 = require("mattermost-redux/utils/file_utils"); function getAllFiles(state) { return state.entities.files.files; } function getFile(state, id) { return state.entities.files.files?.[id]; } function getAllFilesFromSearch(state) { return state.entities.files.filesFromSearch; } function getFilePublicLink(state) { return state.entities.files.filePublicLink; } function getRejectedFiles(state) { return state.entities.files.rejectedFiles || new Set(); } function isFileRejected(state, fileId) { const rejectedFiles = getRejectedFiles(state); return rejectedFiles.has(fileId); } function makeGetFileIdsForPost() { return (0, create_selector_1.createSelector)('makeGetFileIdsForPost', (state, postId) => state.entities.files.fileIdsByPostId[postId], (fileIds) => { return fileIds || []; }); } function makeGetFilesForPost() { const getFilesIdsForPost = makeGetFileIdsForPost(); return (0, create_selector_1.createSelector)('makeGetFilesForPost', getAllFiles, getFilesIdsForPost, (state) => (0, i18n_1.getCurrentUserLocale)(state), (allFiles, fileIdsForPost = [], locale) => { const fileInfos = fileIdsForPost.map((id) => allFiles[id]).filter((id) => Boolean(id)); return (0, file_utils_1.sortFileInfos)(fileInfos, locale); }); } function makeGetFilesForEditHistory() { return (0, create_selector_1.createSelector)('makeGetFilesForEditHistory', (state) => (0, i18n_1.getCurrentUserLocale)(state), (state, editHistoryPost) => editHistoryPost, (userLocal, editHistoryPost) => { const fileInfos = editHistoryPost?.metadata?.files ? [...editHistoryPost.metadata.files] : []; return (0, file_utils_1.sortFileInfos)(fileInfos, userLocal); }); } exports.getSearchFilesResults = (0, create_selector_1.createSelector)('getSearchFilesResults', getAllFilesFromSearch, (state) => state.entities.search.fileResults, (files, fileIds) => { if (!fileIds) { return []; } return fileIds.map((id) => files[id]); });