use team redis keys to resolve team gated features

This commit is contained in:
Francis Cao committed 2026-03-21 11:21:07 -07:00
1 parent 0a4dcebed7
commit cd2b303e89
7 files changed
+58 -13

No files matched your search

+10 -3
View File
@@ -4,6 +4,7 @@ import { useConfig } from './useConfig';
export interface Subscription {
isPro: boolean;
isBusiness: boolean;
isNoBilling: boolean;
hasSubscription: boolean;
}
@@ -16,18 +17,24 @@ export type FeatureName = keyof typeof FEATURES;
const defaultSubscription: Subscription = {
isPro: false,
isBusiness: false,
isNoBilling: false,
hasSubscription: false,
};
export function useSubscription() {
export function useSubscription(teamId?: string | null) {
const { user } = useApp();
const config = useConfig();
const subscription: Subscription = user?.subscription || defaultSubscription;
const ownSubscription: Subscription = user?.subscription || defaultSubscription;
const teamSubscription: Subscription | null = teamId
? user?.teams?.find((t: any) => t.id === teamId)?.subscription ?? null
: null;
const subscription: Subscription = teamSubscription || ownSubscription;
const cloudMode = config?.cloudMode || false;
function hasFeature(feature: FeatureName): boolean {
if (!cloudMode) {
if (!cloudMode || subscription.isNoBilling) {
return true;
}