Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/lib-paywall / src / utils / checkQCRules.js
Size: Mime:
import { businessPremiumPlans, privatePremiumPlans, inactivePlans, paywallSegments } from '../constants/segments';
import { bannerPostfix } from '../constants/tracking';
import { modalTypes } from '../constants/paywall';

export default ({ segments, activeCalendarMax, activeCalendarCount, appSettings = {}, token, apiHost }) => {
  const isBusinessPlan = segments.some(segment =>
    businessPremiumPlans.some(businessPremiumPlan => businessPremiumPlan === segment)
  );

  const isPrivatePlan = segments.some(segment =>
    privatePremiumPlans.some(privatePremiumPlan => privatePremiumPlan === segment)
  );

  const isLimitOfCalendars = activeCalendarCount >= activeCalendarMax;
  const isUserHadTrialOrSubInPast = segments.some(segment => inactivePlans.some(inactivePlan => inactivePlan === segment));

  switch (true) {
    case isBusinessPlan || isPrivatePlan: {
      return { shouldOpenModal: false };
    }

    case !isLimitOfCalendars: {
      return { shouldOpenModal: false };
    }

    case isUserHadTrialOrSubInPast: {
      return {
        shouldOpenModal: true,
        modalType: modalTypes.getPremiumAfterLimit,
        trackingEventPostfix: bannerPostfix.freeNotEligibleForTrial,
      };
    }

    default: {
      return {
        shouldOpenModal: true,
        modalType: modalTypes.getTrial,
        trackingEventPostfix: bannerPostfix.freeEligibleForTrial,
      };
    }
  }
};