UNPKG

@shopgate/engage

Version:
17 lines 1.71 kB
import{createSelector}from'reselect';import{getIsReserveOnly}from"./order";/** * Returns all available payment methods. * @param {Object} state The application state. * @returns {Array} */export var getPaymentMethods=function getPaymentMethods(state){return state.checkout.paymentMethods.data;};/** * Creates a selector that will return the first payment method found that * implements the given by provider code. * @param {Object} getProviderCode Function to select provider code. * @returns {Object} */export var makeGetPaymentMethodByProviderCode=function makeGetPaymentMethodByProviderCode(getProviderCode){return createSelector(getPaymentMethods,getProviderCode,function(paymentMethods,providerCode){return paymentMethods.find(function(methods){var _methods$paymentProvi;return((_methods$paymentProvi=methods.paymentProvider)===null||_methods$paymentProvi===void 0?void 0:_methods$paymentProvi.code)===providerCode;});});};/** * Selects the default payment method * @param {Object} state App state * @returns {Object} */export var getDefaultPaymentMethod=function getDefaultPaymentMethod(state){return getPaymentMethods(state)[0];};var getPaymentMethodForStripe=makeGetPaymentMethodByProviderCode(function(){return'stripe';});export var getStripePublishableKey=createSelector(getPaymentMethodForStripe,function(paymentMethod){var _paymentMethod$settin;if(!paymentMethod)return null;return(_paymentMethod$settin=paymentMethod.settings)===null||_paymentMethod$settin===void 0?void 0:_paymentMethod$settin.publishableKey;});/** * @param {Object} state App state * @returns {boolean} */export var getNeedsPaymentForOrder=function getNeedsPaymentForOrder(state){return!getIsReserveOnly(state);};