/
upgradeTab.ts
49 lines (40 loc) · 1.19 KB
/
upgradeTab.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
export type UpgradeTabVariant = 'go-fully-featured' | 'go-fully-featured-registered' | 'trial-enterprise' | 'upgrade-your-plan';
type UpgradeLabel = 'Upgrade_tab_upgrade_your_plan' | 'Upgrade_tab_trial_guide' | 'Upgrade_tab_go_fully_featured';
type UpgradeTabConditions = {
registered: boolean;
hasValidLicense: boolean;
isTrial: boolean;
hadExpiredTrials: boolean;
};
export const getUpgradeTabType = ({
registered,
hasValidLicense,
isTrial,
hadExpiredTrials,
}: UpgradeTabConditions): UpgradeTabVariant | false => {
if (!hasValidLicense) {
if (hadExpiredTrials) {
return 'upgrade-your-plan';
}
if (registered) {
return 'go-fully-featured-registered';
}
return 'go-fully-featured';
}
if (isTrial) {
return 'trial-enterprise';
}
return false;
};
export const getUpgradeTabLabel = (type: UpgradeTabVariant | false): UpgradeLabel => {
switch (type) {
case 'go-fully-featured':
case 'go-fully-featured-registered':
return 'Upgrade_tab_go_fully_featured';
case 'trial-enterprise':
return 'Upgrade_tab_trial_guide';
default:
return 'Upgrade_tab_upgrade_your_plan';
}
};
export const isFullyFeature = (type: UpgradeTabVariant | false) => type === 'go-fully-featured';