Merge pull request #726 from ente-io/expired-subscription-renewal
This commit is contained in:
commit
74443e97dd
|
@ -1,5 +1,5 @@
|
||||||
import { GalleryContext } from 'pages/gallery';
|
import { GalleryContext } from 'pages/gallery';
|
||||||
import React, { useContext, useMemo } from 'react';
|
import React, { MouseEventHandler, useContext, useMemo } from 'react';
|
||||||
import {
|
import {
|
||||||
hasPaidSubscription,
|
hasPaidSubscription,
|
||||||
isFamilyAdmin,
|
isFamilyAdmin,
|
||||||
|
@ -43,19 +43,23 @@ export default function SubscriptionStatus({
|
||||||
}, [userDetails]);
|
}, [userDetails]);
|
||||||
|
|
||||||
const handleClick = useMemo(() => {
|
const handleClick = useMemo(() => {
|
||||||
|
const eventHandler: MouseEventHandler<HTMLSpanElement> = (e) => {
|
||||||
|
e.stopPropagation();
|
||||||
if (userDetails) {
|
if (userDetails) {
|
||||||
if (isSubscriptionActive(userDetails.subscription)) {
|
if (isSubscriptionActive(userDetails.subscription)) {
|
||||||
if (hasExceededStorageQuota(userDetails)) {
|
if (hasExceededStorageQuota(userDetails)) {
|
||||||
return showPlanSelectorModal;
|
showPlanSelectorModal();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (hasStripeSubscription(userDetails.subscription)) {
|
if (hasStripeSubscription(userDetails.subscription)) {
|
||||||
return billingService.redirectToCustomerPortal;
|
billingService.redirectToCustomerPortal();
|
||||||
} else {
|
} else {
|
||||||
return showPlanSelectorModal;
|
showPlanSelectorModal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
return eventHandler;
|
||||||
}, [userDetails]);
|
}, [userDetails]);
|
||||||
|
|
||||||
if (!hasAMessage) {
|
if (!hasAMessage) {
|
||||||
|
@ -80,13 +84,9 @@ export default function SubscriptionStatus({
|
||||||
)
|
)
|
||||||
: hasExceededStorageQuota(userDetails) &&
|
: hasExceededStorageQuota(userDetails) &&
|
||||||
constants.STORAGE_QUOTA_EXCEEDED_SUBSCRIPTION_INFO(
|
constants.STORAGE_QUOTA_EXCEEDED_SUBSCRIPTION_INFO(
|
||||||
showPlanSelectorModal
|
handleClick
|
||||||
)
|
)
|
||||||
: constants.SUBSCRIPTION_EXPIRED_MESSAGE(
|
: constants.SUBSCRIPTION_EXPIRED_MESSAGE(handleClick)}
|
||||||
hasStripeSubscription(userDetails.subscription)
|
|
||||||
? billingService.redirectToCustomerPortal
|
|
||||||
: showPlanSelectorModal
|
|
||||||
)}
|
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
|
|
|
@ -454,7 +454,8 @@ export default function Uploader(props: Props) {
|
||||||
message: constants.SUBSCRIPTION_EXPIRED,
|
message: constants.SUBSCRIPTION_EXPIRED,
|
||||||
action: {
|
action: {
|
||||||
text: constants.RENEW_NOW,
|
text: constants.RENEW_NOW,
|
||||||
callback: billingService.redirectToCustomerPortal,
|
callback: () =>
|
||||||
|
billingService.redirectToCustomerPortal(),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -153,7 +153,6 @@ export function isUserSubscribedPlan(plan: Plan, subscription: Subscription) {
|
||||||
}
|
}
|
||||||
export function hasStripeSubscription(subscription: Subscription) {
|
export function hasStripeSubscription(subscription: Subscription) {
|
||||||
return (
|
return (
|
||||||
hasPaidSubscription(subscription) &&
|
|
||||||
subscription.paymentProvider.length > 0 &&
|
subscription.paymentProvider.length > 0 &&
|
||||||
subscription.paymentProvider === PAYMENT_PROVIDER_STRIPE
|
subscription.paymentProvider === PAYMENT_PROVIDER_STRIPE
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue