* factory and statergie * chore: use correct method of DI * feat: add onchagne * add logic to HWM stat * add webhook resolver methods to each statergy * move seat tracking + webhooks over to own statergy * Move to factory base approach * move logic to correct class * rename create -> createByTeamId * fix: remove debug `true ||` overrides from IS_STRIPE_ENABLED and IS_TEAM_BILLING_ENABLED Remove accidentally committed debug overrides that short-circuited IS_STRIPE_ENABLED and IS_TEAM_BILLING_ENABLED to always be true, bypassing Stripe credential checks. This would break self-hosted instances without Stripe configured. Identified by cubic (https://cubic.dev) Co-Authored-By: unknown <> * feat: active user billing * add tests * UI side for users on active billing * use correct period of stripe sub * feat: claude feedback * fix: skip Stripe sync for canceled/expired subscriptions to prevent repeated API calls Co-Authored-By: unknown <> * feat: feedback * feat: only render when active users mode is set * fix type error * fix: constants + feature flags * fix: default to null in tests * chore: use seats in test * fix: use node:crypto protocol for Node.js builtin imports Co-Authored-By: sean@cal.com <Sean@brydon.io> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import type { AppFlags } from "@calcom/features/flags/config";
|
|
import { trpc } from "@calcom/trpc/react";
|
|
|
|
const initialData: AppFlags = {
|
|
organizations: false,
|
|
teams: false,
|
|
"calendar-cache": false,
|
|
"calendar-cache-serve": false,
|
|
emails: false,
|
|
insights: false,
|
|
webhooks: false,
|
|
workflows: false,
|
|
"email-verification": false,
|
|
"google-workspace-directory": false,
|
|
"disable-signup": false,
|
|
attributes: false,
|
|
"organizer-request-email-v2": false,
|
|
"delegation-credential": false,
|
|
"salesforce-crm-tasker": false,
|
|
"workflow-smtp-emails": false,
|
|
"cal-video-log-in-overlay": false,
|
|
"use-api-v2-for-team-slots": false,
|
|
pbac: false,
|
|
"restriction-schedule": false,
|
|
"team-booking-page-cache": false,
|
|
"cal-ai-voice-agents": false,
|
|
"tiered-support-chat": false,
|
|
"calendar-subscription-cache": false,
|
|
"calendar-subscription-sync": false,
|
|
"onboarding-v3": false,
|
|
"booker-botid": false,
|
|
"booking-calendar-view": false,
|
|
"booking-email-sms-tasker": false,
|
|
"bookings-v3": false,
|
|
"booking-audit": false,
|
|
"monthly-proration": false,
|
|
"hwm-seating": false,
|
|
"active-user-billing": false,
|
|
"sidebar-tips": false,
|
|
};
|
|
|
|
if (process.env.NEXT_PUBLIC_IS_E2E) {
|
|
initialData.organizations = true;
|
|
initialData.teams = true;
|
|
}
|
|
|
|
export function useFlags(): Partial<AppFlags> {
|
|
const query = trpc.viewer.features.map.useQuery();
|
|
return query.data ?? initialData;
|
|
}
|