Skip to content

Commit d11fa99

Browse files
authored
fix: Feature Preview compare hours elapsed within range instead of dates (#3752)
* compare hours elapsed within range instead of dates * replace magic number
1 parent 9b88c4c commit d11fa99

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/features.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { StoredFeaturePreviewUsagePeriod } from './constants.storage';
2-
import { proFeaturePreviewUsages } from './constants.subscription';
2+
import { proFeaturePreviewUsageDurationInDays, proFeaturePreviewUsages } from './constants.subscription';
33
import type { RepositoryVisibility } from './git/gitProvider';
44
import type { RequiredSubscriptionPlans, Subscription } from './plus/gk/account/subscription';
55
import { capitalize } from './system/string';
@@ -60,17 +60,28 @@ export function getFeaturePreviewLabel(feature: FeaturePreviews) {
6060
}
6161
}
6262

63+
const hoursInMs = 3600000;
64+
6365
export function isFeaturePreviewActive(featurePreview?: FeaturePreview) {
6466
const usages = featurePreview?.usages;
6567
if (usages == null || usages.length === 0) return false;
6668

67-
return usages.length <= proFeaturePreviewUsages && new Date(usages[usages.length - 1].expiresOn) > new Date();
69+
const remainingHours = (new Date(usages[usages.length - 1].expiresOn).getTime() - new Date().getTime()) / hoursInMs;
70+
return (
71+
usages.length <= proFeaturePreviewUsages &&
72+
remainingHours > 0 &&
73+
remainingHours < 24 * proFeaturePreviewUsageDurationInDays
74+
);
6875
}
6976

7077
export function isFeaturePreviewExpired(featurePreview: FeaturePreview) {
7178
const usages = featurePreview.usages;
79+
if (usages == null || usages.length === 0) return false;
80+
81+
const remainingHours = (new Date(usages[usages.length - 1].expiresOn).getTime() - new Date().getTime()) / hoursInMs;
7282
return (
7383
usages.length > proFeaturePreviewUsages ||
74-
(usages.length === proFeaturePreviewUsages && new Date(usages[usages.length - 1].expiresOn) < new Date())
84+
(usages.length === proFeaturePreviewUsages && remainingHours <= 0) ||
85+
remainingHours >= 24 * proFeaturePreviewUsageDurationInDays
7586
);
7687
}

0 commit comments

Comments
 (0)