* WIP Global error handler Adding components Adding actions * Add general errors where errors are caught * Filter out non displayable errors * Initial setup to email errors * Add current user/team to error email * Fix a few lints * Ensure errors are cleared when reporting a problem * Add clear all and internationalization * Fix trailing comma issue * fix lints * Use Formatted Text component * Move error list out of channel * Add mobile prefix to i18n id for connection error * Set shouldRender to true in RightMenuDrawerItem.defaultProps * Update component name for RightMenuDrawerItem * Clean up propTypes in RightMenuDrawerItem * Clean up styles in RightMenuDrawerItem * Use selector to filter displayable errors * Clarify code for constructing wrapper style in ErrorList * Avoid indenting email body for error report * Remove extraneous params from errors actions * Rename action type for logging errors * Rename action for logging errors * Set shouldRender to true in RightMenuDrawerItem.defaultProps * Make logged errors displayable by default * Don't log error when websocket connection is closed * Hide button to dismiss all errors if ShowErrorsList isn't enabled * Display only last error in alert bar when ShowErrorsList is disabled * Add error logging where missing in actions * Always show button to report problem * Only include errors in report problem email if any have been logged * Clarify subject of report problem email * Set ShowErrorsList to false in default config.json * Remove unused component + translation for connection errors * Capture entire error object not just message * Display fallback if error.message is blank * Log errors in login actions * Fix construction of errors email body
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import {batchActions} from 'redux-batched-actions';
|
|
|
|
import Client from 'service/client';
|
|
import {FilesTypes} from 'service/constants';
|
|
import {getLogErrorAction} from 'service/actions/errors';
|
|
import {forceLogoutIfNecessary} from './helpers';
|
|
|
|
export function getFilesForPost(teamId, channelId, postId) {
|
|
return async (dispatch, getState) => {
|
|
dispatch({type: FilesTypes.FETCH_FILES_FOR_POST_REQUEST}, getState);
|
|
let files;
|
|
|
|
try {
|
|
files = await Client.getFileInfosForPost(teamId, channelId, postId);
|
|
} catch (error) {
|
|
forceLogoutIfNecessary(error, dispatch);
|
|
dispatch(batchActions([
|
|
{type: FilesTypes.FETCH_FILES_FOR_POST_FAILURE, error},
|
|
getLogErrorAction(error)
|
|
]), getState);
|
|
return;
|
|
}
|
|
|
|
dispatch(batchActions([
|
|
{
|
|
type: FilesTypes.RECEIVED_FILES_FOR_POST,
|
|
data: files,
|
|
postId
|
|
},
|
|
{
|
|
type: FilesTypes.FETCH_FILES_FOR_POST_SUCCESS
|
|
}
|
|
]), getState);
|
|
};
|
|
}
|