Repository URL to install this package:
|
Version:
2.1.0 ▾
|
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,
};
}
}
};