37 lines · 1.3 KB · TypeScript
RawDownload
import {  ACTIVE_AUTUMN_SUBSCRIPTION_STATUSES,  PAID_AUTUMN_PLAN_IDS,} from "../services/autumn-plans"; export const FREE_ORGANIZATIONS_PER_USER_LIMIT = 3; export type OrganizationLimitSubscriptionSummary = {  readonly planId?: string | null;  readonly status?: string | null;}; export type OrganizationLimitMembershipSummary = {  readonly organizationId: string;  readonly status?: string | null;}; export const isPaidOrganizationSubscription = (  subscription: OrganizationLimitSubscriptionSummary,): boolean =>  subscription.planId != null &&  PAID_AUTUMN_PLAN_IDS.has(subscription.planId) &&  ACTIVE_AUTUMN_SUBSCRIPTION_STATUSES.has(subscription.status ?? ""); export const hasPaidOrganizationSubscription = (  subscriptions: ReadonlyArray<OrganizationLimitSubscriptionSummary>,): boolean => subscriptions.some(isPaidOrganizationSubscription); export const shouldApplyFreeOrganizationLimit = (  activeMemberships: ReadonlyArray<OrganizationLimitMembershipSummary>,  paidOrganizationIds: ReadonlySet<string>,): boolean =>  !activeMemberships.some((membership) => paidOrganizationIds.has(membership.organizationId)); export const isOverFreeOrganizationLimit = (  activeMemberships: ReadonlyArray<OrganizationLimitMembershipSummary>,): boolean => activeMemberships.length >= FREE_ORGANIZATIONS_PER_USER_LIMIT;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t