Remove errors middleware
This commit is contained in:
parent
7944de8305
commit
e6e946974f
3 changed files with 1 additions and 35 deletions
|
@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- UI: unified design of "approve" and "reject" buttons in follow requests and waitlist.
|
- UI: unified design of "approve" and "reject" buttons in follow requests and waitlist.
|
||||||
- UI: added sticky column header.
|
- UI: added sticky column header.
|
||||||
- UI: add specific zones the user can drag-and-drop files.
|
- UI: add specific zones the user can drag-and-drop files.
|
||||||
|
- UI: disable toast notifications for API errors.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Posts: fixed emojis being cut off in reactions modal.
|
- Posts: fixed emojis being cut off in reactions modal.
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
import toast from 'soapbox/toast';
|
|
||||||
|
|
||||||
import type { AnyAction } from 'redux';
|
|
||||||
import type { ThunkMiddleware } from 'redux-thunk';
|
|
||||||
|
|
||||||
/** Whether the action is considered a failure. */
|
|
||||||
const isFailType = (type: string): boolean => type.endsWith('_FAIL');
|
|
||||||
|
|
||||||
/** Whether the action is a failure to fetch from browser storage. */
|
|
||||||
const isRememberFailType = (type: string): boolean => type.endsWith('_REMEMBER_FAIL');
|
|
||||||
|
|
||||||
/** Whether the error contains an Axios response. */
|
|
||||||
const hasResponse = (error: any): boolean => Boolean(error && error.response);
|
|
||||||
|
|
||||||
/** Don't show 401's. */
|
|
||||||
const authorized = (error: any): boolean => error?.response?.status !== 401;
|
|
||||||
|
|
||||||
/** Whether the error should be shown to the user. */
|
|
||||||
const shouldShowError = ({ type, skipAlert, error }: AnyAction): boolean => {
|
|
||||||
return !skipAlert && hasResponse(error) && authorized(error) && isFailType(type) && !isRememberFailType(type);
|
|
||||||
};
|
|
||||||
|
|
||||||
/** Middleware to display Redux errors to the user. */
|
|
||||||
const errorsMiddleware = (): ThunkMiddleware =>
|
|
||||||
() => next => action => {
|
|
||||||
if (shouldShowError(action)) {
|
|
||||||
toast.showAlertForError(action.error);
|
|
||||||
}
|
|
||||||
|
|
||||||
return next(action);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default errorsMiddleware;
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { configureStore } from '@reduxjs/toolkit';
|
import { configureStore } from '@reduxjs/toolkit';
|
||||||
import thunk, { ThunkDispatch } from 'redux-thunk';
|
import thunk, { ThunkDispatch } from 'redux-thunk';
|
||||||
|
|
||||||
import errorsMiddleware from './middleware/errors';
|
|
||||||
import soundsMiddleware from './middleware/sounds';
|
import soundsMiddleware from './middleware/sounds';
|
||||||
import appReducer from './reducers';
|
import appReducer from './reducers';
|
||||||
|
|
||||||
|
@ -11,7 +10,6 @@ export const store = configureStore({
|
||||||
reducer: appReducer,
|
reducer: appReducer,
|
||||||
middleware: [
|
middleware: [
|
||||||
thunk,
|
thunk,
|
||||||
errorsMiddleware(),
|
|
||||||
soundsMiddleware(),
|
soundsMiddleware(),
|
||||||
],
|
],
|
||||||
devTools: true,
|
devTools: true,
|
||||||
|
|
Loading…
Reference in a new issue