From 0be8fb79315cc2e2eb3a0cc9669000e1894933ab Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 9 Feb 2026 17:42:35 -0800 Subject: [PATCH] add tier type --- server/types/Tiers.ts | 1 + src/hooks/usePaidStatus.ts | 3 ++- src/providers/SubscriptionStatusProvider.tsx | 6 +++++- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 server/types/Tiers.ts diff --git a/server/types/Tiers.ts b/server/types/Tiers.ts new file mode 100644 index 00000000..f81e94e2 --- /dev/null +++ b/server/types/Tiers.ts @@ -0,0 +1 @@ +export type Tier = "tier1" | "tier2" | "tier3" | "enterprise"; diff --git a/src/hooks/usePaidStatus.ts b/src/hooks/usePaidStatus.ts index 88423853..db36519a 100644 --- a/src/hooks/usePaidStatus.ts +++ b/src/hooks/usePaidStatus.ts @@ -1,6 +1,7 @@ import { build } from "@server/build"; import { useLicenseStatusContext } from "./useLicenseStatusContext"; import { useSubscriptionStatusContext } from "./useSubscriptionStatusContext"; +import { Tier } from "@server/lib/tiers"; export function usePaidStatus() { const { isUnlocked } = useLicenseStatusContext(); @@ -11,7 +12,7 @@ export function usePaidStatus() { const tierData = subscription?.getTier(); const hasSaasSubscription = build === "saas" && tierData?.active; - function isPaidUser(tiers: string[]): boolean { + function isPaidUser(tiers: Tier): boolean { if (hasEnterpriseLicense) { return true; } diff --git a/src/providers/SubscriptionStatusProvider.tsx b/src/providers/SubscriptionStatusProvider.tsx index be5a7b5a..9a5050f6 100644 --- a/src/providers/SubscriptionStatusProvider.tsx +++ b/src/providers/SubscriptionStatusProvider.tsx @@ -4,6 +4,7 @@ import SubscriptionStatusContext from "@app/contexts/subscriptionStatusContext"; import { GetOrgSubscriptionResponse } from "@server/routers/billing/types"; import { useState } from "react"; import { build } from "@server/build"; +import { Tier } from "@server/types/Tiers"; interface ProviderProps { children: React.ReactNode; @@ -31,7 +32,10 @@ export function SubscriptionStatusProvider({ }); }; - const getTier = () => { + const getTier = (): { + tier: Tier | null; + active: boolean; + } => { if (subscriptionStatus?.subscriptions) { // Iterate through all subscriptions for (const { subscription } of subscriptionStatus.subscriptions) {