Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import type { BeneficiarySubscription } from '@/types';
export const isSubscriptionActive = (
subscription?: BeneficiarySubscription
): boolean => {
return subscription?.status === 'active' ||
subscription?.status === 'expiring_soon' ||
subscription?.status === 'trialing';
};
export const isSubscriptionExpiringSoon = (
subscription?: BeneficiarySubscription
): boolean => {
if (!subscription) return false;
if (subscription.status === 'expiring_soon') return true;
if (!subscription.cancelAtPeriodEnd || !subscription.endDate) return false;
const endTime = new Date(subscription.endDate).getTime();
if (Number.isNaN(endTime)) return false;
const daysLeft = (endTime - Date.now()) / (1000 * 60 * 60 * 24);
return daysLeft <= 7;
};
|