add three day grace period

This commit is contained in:
Paul Miller
2023-08-08 15:48:45 -05:00
parent 958c2b690d
commit f78d7afddf
3 changed files with 12 additions and 11 deletions

View File

@@ -27,6 +27,7 @@ import eify from "~/utils/eify";
import party from "~/assets/party.gif";
import { LoadingShimmer } from "~/components/BalanceBox";
import { useI18n } from "~/i18n/context";
import { subscriptionValid } from "~/utils/subscriptions";
function Perks(props: { alreadySubbed?: boolean }) {
const i18n = useI18n();
@@ -114,10 +115,7 @@ function PlusCTA() {
);
}
if (
state.subscription_timestamp &&
state.subscription_timestamp < Math.ceil(Date.now() / 1000)
) {
if (!subscriptionValid(state.subscription_timestamp)) {
setError(
new Error(
i18n.t("settings.plus.error_expired_subscription")

View File

@@ -23,6 +23,7 @@ import { checkBrowserCompatibility } from "~/logic/browserCompatibility";
import eify from "~/utils/eify";
import { timeout } from "~/utils/timeout";
import { ParsedParams } from "~/logic/waila";
import { subscriptionValid } from "~/utils/subscriptions";
const MegaStoreContext = createContext<MegaStore>();
@@ -81,13 +82,8 @@ export const Provider: ParentComponent = (props) => {
existing_tab_detected: false,
subscription_timestamp: undefined as number | undefined,
get mutiny_plus(): boolean {
// No subscription
if (!state.subscription_timestamp) return false;
// Expired
if (state.subscription_timestamp < Math.ceil(Date.now() / 1000))
return false;
else return true;
// Make sure the subscription hasn't expired
return subscriptionValid(state.subscription_timestamp);
},
needs_password: false,
load_stage: "fresh" as LoadStage,

View File

@@ -0,0 +1,7 @@
const GRACE = 60 * 60 * 24 * 3; // 3 days
export function subscriptionValid(subscriptionExpiresTimestamp?: number) {
if (!subscriptionExpiresTimestamp) return false;
return subscriptionExpiresTimestamp + GRACE > Math.ceil(Date.now() / 1000);
}