import { Middleware } from '@reduxjs/toolkit'; import { CheckoutResult, MiddlewareAction, MiddlewareParams } from '../../../types'; import { setBankAccounts, setCardType, setInstallmentOptions, setSelectedBankAccountPk } from '../../reducers/checkout'; import { resetMasterpassState } from '@akinon/pz-masterpass/src/redux/reducer'; export const paymentOptionResetMiddleware: Middleware = ({ dispatch }: MiddlewareParams) => { return (next) => (action) => { const result = next(action) as CheckoutResult; const act = action as MiddlewareAction; if ( act.type === 'api/executeMutation/fulfilled' && act.meta?.arg?.endpointName === 'setPaymentOption' ) { dispatch(setInstallmentOptions([])); dispatch(setBankAccounts([])); dispatch(setSelectedBankAccountPk(null)); dispatch(setCardType(null)); if(resetMasterpassState){ dispatch(resetMasterpassState()); } } return result; }; }; Object.defineProperty(paymentOptionResetMiddleware, 'name', { value: 'paymentOptionResetMiddleware' });