import { Middleware, isFulfilled, isRejectedWithValue } from '@reduxjs/toolkit';
import { t } from 'i18next';
import { enqueueSnackbar } from 'notistack';
import { allAlertMessages } from './messages';
export const rtkAlertMiddleware: Middleware = () => (next) => (action) => {
const result = next(action);
const endpointName = action?.meta?.arg?.endpointName;
if (endpointName) {
const messages = allAlertMessages[endpointName];
if (messages) {
if (isFulfilled(action) && messages.success) {
enqueueSnackbar(t(`alerts:${messages.success}`), {
variant: 'success',
});
}
if (isRejectedWithValue(action) && messages.error) {
enqueueSnackbar(t(`alerts:${messages.error}`), {
variant: 'error',
});
}
}
}
return result;
};