Загрузка данных


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;
};