@shopgate/engage
Version:
Shopgate's ENGAGE library.
17 lines • 1.71 kB
JavaScript
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);};