update subscription infos

This commit is contained in:
Abhinav 2022-07-03 16:44:20 +05:30
parent 13904548fb
commit 093c9900f6
3 changed files with 17 additions and 4 deletions

View file

@ -5,6 +5,7 @@ import {
isFamilyAdmin, isFamilyAdmin,
isOnFreePlan, isOnFreePlan,
isPartOfFamily, isPartOfFamily,
hasExceededStorageQuota,
isSubscriptionActive, isSubscriptionActive,
isSubscriptionCancelled, isSubscriptionCancelled,
} from 'utils/billing'; } from 'utils/billing';
@ -55,10 +56,12 @@ export default function SubscriptionStatus({
? constants.FREE_SUBSCRIPTION_INFO( ? constants.FREE_SUBSCRIPTION_INFO(
userDetails.subscription?.expiryTime userDetails.subscription?.expiryTime
) )
: isSubscriptionCancelled(userDetails.subscription) && : isSubscriptionCancelled(userDetails.subscription)
constants.RENEWAL_CANCELLED_SUBSCRIPTION_INFO( ? constants.RENEWAL_CANCELLED_SUBSCRIPTION_INFO(
userDetails.subscription?.expiryTime userDetails.subscription?.expiryTime
) )
: hasExceededStorageQuota(userDetails) &&
constants.STORAGE_QUOTA_EXCEEDED_SUBSCRIPTION_INFO
: constants.SUBSCRIPTION_EXPIRED_MESSAGE( : constants.SUBSCRIPTION_EXPIRED_MESSAGE(
showPlanSelectorModal showPlanSelectorModal
)} )}

View file

@ -8,7 +8,7 @@ import { CustomError } from '../error';
import { logError } from '../sentry'; import { logError } from '../sentry';
import { SetDialogBoxAttributes } from 'types/dialogBox'; import { SetDialogBoxAttributes } from 'types/dialogBox';
import { getFamilyPortalRedirectURL } from 'services/userService'; import { getFamilyPortalRedirectURL } from 'services/userService';
import { FamilyData, FamilyMember, User } from 'types/user'; import { FamilyData, FamilyMember, User, UserDetails } from 'types/user';
const PAYMENT_PROVIDER_STRIPE = 'stripe'; const PAYMENT_PROVIDER_STRIPE = 'stripe';
const PAYMENT_PROVIDER_APPSTORE = 'appstore'; const PAYMENT_PROVIDER_APPSTORE = 'appstore';
@ -186,6 +186,15 @@ export function hasPaypalSubscription(subscription: Subscription) {
); );
} }
export function hasExceededStorageQuota(userDetails: UserDetails) {
if (isPartOfFamily(userDetails.familyData)) {
const usage = getTotalFamilyUsage(userDetails.familyData);
return usage > userDetails.familyData.storage;
} else {
return userDetails.usage > userDetails.subscription.storage;
}
}
export async function updateSubscription( export async function updateSubscription(
plan: Plan, plan: Plan,
setDialogMessage: SetDialogBoxAttributes, setDialogMessage: SetDialogBoxAttributes,

View file

@ -264,13 +264,14 @@ const englishConstants = {
FAMILY_SUBSCRIPTION_INFO: 'You are on a family plan managed by', FAMILY_SUBSCRIPTION_INFO: 'You are on a family plan managed by',
RENEWAL_ACTIVE_SUBSCRIPTION_INFO: (expiryTime) => ( RENEWAL_ACTIVE_SUBSCRIPTION_INFO: (expiryTime) => (
<>Your subscription will renew on {dateString(expiryTime)}</> <>Renew on {dateString(expiryTime)}</>
), ),
RENEWAL_CANCELLED_SUBSCRIPTION_INFO: (expiryTime) => ( RENEWAL_CANCELLED_SUBSCRIPTION_INFO: (expiryTime) => (
<>Your subscription will be cancelled on {dateString(expiryTime)}</> <>Your subscription will be cancelled on {dateString(expiryTime)}</>
), ),
STORAGE_QUOTA_EXCEEDED_SUBSCRIPTION_INFO: `You have exceeded your storage quota, please upgrade your plan.`,
SUBSCRIPTION_PURCHASE_SUCCESS: (expiryTime) => ( SUBSCRIPTION_PURCHASE_SUCCESS: (expiryTime) => (
<> <>
<p>We've received your payment</p> <p>We've received your payment</p>