function addItems( items ) { const domainsWithPlansOnlyTestEnabled = abtest( 'domainsWithPlansOnly' ) === 'plansOnly', freeTrialsEnabled = abtest( 'freeTrialsInSignup' ) === 'enabled', selectedSite = sitesList.getSelectedSite(); let shouldBundleWithPremium = items.some( item => isDomainRegistration( item ) || isDomainMapping( item ) ) && ! freeTrialsEnabled && domainsWithPlansOnlyTestEnabled; if ( selectedSite ) { const cart = CartStore.get(); shouldBundleWithPremium = shouldBundleWithPremium && ! isPlan( selectedSite.plan ) && ! cartItems.hasPlan( cart ); } if ( shouldBundleWithPremium ) { items = [ cartItems.premiumPlan( 'value_bundle', { isFreeTrial: false } ) ].concat( items ); } const extendedItems = items.map( ( item ) => { const extra = assign( {}, item.extra, { context: 'calypstore', withPlansOnly: domainsWithPlansOnlyTestEnabled && ! freeTrialsEnabled ? 'yes' : '' } ); return assign( {}, item, { extra } ); } ); extendedItems.forEach( item => recordAddToCart( item ) ); Dispatcher.handleViewAction( { type: ActionTypes.CART_ITEMS_ADD, cartItems: extendedItems } ); }
TransactionStore.dispatchToken = Dispatcher.register( function( payload ) { var action = payload.action; switch ( action.type ) { case UpgradesActionTypes.TRANSACTION_DOMAIN_DETAILS_SET: setDomainDetails( action.domainDetails ); break; case UpgradesActionTypes.TRANSACTION_PAYMENT_SET: setPayment( action.payment ); break; case UpgradesActionTypes.TRANSACTION_NEW_CREDIT_CARD_DETAILS_SET: setNewCreditCardDetails( { rawDetails: action.rawDetails, maskedDetails: action.maskedDetails } ); break; case UpgradesActionTypes.TRANSACTION_STEP_SET: setStep( action.step ); break; case UpgradesActionTypes.TRANSACTION_RESET: reset(); break; case UpgradesActionTypes.CART_ITEM_REMOVE: Dispatcher.waitFor( [ CartStore.dispatchToken ] ); if ( ! cartItems.hasDomainRegistration( CartStore.get() ) && hasDomainDetails( TransactionStore.get() ) ) { setDomainDetails( null ); } break; } } );