UNPKG

@woocommerce/data

Version:
80 lines (79 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Internal dependencies */ const action_types_1 = require("./action-types"); function updatePaymentGatewayList(state, paymentGateway) { const targetIndex = state.paymentGateways.findIndex((gateway) => gateway.id === paymentGateway.id); if (targetIndex === -1) { return { ...state, paymentGateways: [...state.paymentGateways, paymentGateway], isUpdating: false, }; } return { ...state, paymentGateways: [ ...state.paymentGateways.slice(0, targetIndex), paymentGateway, ...state.paymentGateways.slice(targetIndex + 1), ], isUpdating: false, }; } const reducer = (state = { paymentGateways: [], isUpdating: false, errors: {}, }, payload) => { if (payload && 'type' in payload) { switch (payload.type) { case action_types_1.ACTION_TYPES.GET_PAYMENT_GATEWAYS_REQUEST: case action_types_1.ACTION_TYPES.GET_PAYMENT_GATEWAY_REQUEST: return state; case action_types_1.ACTION_TYPES.GET_PAYMENT_GATEWAYS_SUCCESS: return { ...state, paymentGateways: payload.paymentGateways, }; case action_types_1.ACTION_TYPES.GET_PAYMENT_GATEWAYS_ERROR: return { ...state, errors: { ...state.errors, getPaymentGateways: payload.error, }, }; case action_types_1.ACTION_TYPES.GET_PAYMENT_GATEWAY_ERROR: return { ...state, errors: { ...state.errors, getPaymentGateway: payload.error, }, }; case action_types_1.ACTION_TYPES.UPDATE_PAYMENT_GATEWAY_REQUEST: return { ...state, isUpdating: true, }; case action_types_1.ACTION_TYPES.UPDATE_PAYMENT_GATEWAY_SUCCESS: return updatePaymentGatewayList(state, payload.paymentGateway); case action_types_1.ACTION_TYPES.GET_PAYMENT_GATEWAY_SUCCESS: return updatePaymentGatewayList(state, payload.paymentGateway); case action_types_1.ACTION_TYPES.UPDATE_PAYMENT_GATEWAY_ERROR: return { ...state, errors: { ...state.errors, updatePaymentGateway: payload.error, }, isUpdating: false, }; } } return state; }; exports.default = reducer;