From e6e946974fe8baa768aeab69b36d5909d1c47d39 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 20 Jul 2023 15:20:48 -0500 Subject: [PATCH] Remove errors middleware --- CHANGELOG.md | 1 + app/soapbox/middleware/errors.ts | 33 -------------------------------- app/soapbox/store.ts | 2 -- 3 files changed, 1 insertion(+), 35 deletions(-) delete mode 100644 app/soapbox/middleware/errors.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 43ca09934f..e5cd615cd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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: added sticky column header. - UI: add specific zones the user can drag-and-drop files. +- UI: disable toast notifications for API errors. ### Fixed - Posts: fixed emojis being cut off in reactions modal. diff --git a/app/soapbox/middleware/errors.ts b/app/soapbox/middleware/errors.ts deleted file mode 100644 index 9e423a6853..0000000000 --- a/app/soapbox/middleware/errors.ts +++ /dev/null @@ -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; diff --git a/app/soapbox/store.ts b/app/soapbox/store.ts index 8aeb0a791b..9b0136a000 100644 --- a/app/soapbox/store.ts +++ b/app/soapbox/store.ts @@ -1,7 +1,6 @@ import { configureStore } from '@reduxjs/toolkit'; import thunk, { ThunkDispatch } from 'redux-thunk'; -import errorsMiddleware from './middleware/errors'; import soundsMiddleware from './middleware/sounds'; import appReducer from './reducers'; @@ -11,7 +10,6 @@ export const store = configureStore({ reducer: appReducer, middleware: [ thunk, - errorsMiddleware(), soundsMiddleware(), ], devTools: true,