Skip to content

Commit 59cc33a

Browse files
devin-ai-integration[bot]Convex, Inc.
authored andcommitted
Remove seatlessPlans LaunchDarkly flag (#38299)
# Remove seatlessPlans LaunchDarkly Flag ## Summary This PR removes the `seatlessPlans` LaunchDarkly feature flag from the dashboard codebase since it has been fully rolled out to `true`. The cleanup removes the feature flag infrastructure while preserving the current production behavior. ## Changes Made - **useLaunchDarkly.tsx**: Removed `seatlessPlans` flag definition from type and defaults object - **billing.ts**: Removed conditional plan filtering logic in `useListPlans` function - now returns all plans (the "true" behavior) - **PlanCard.tsx**: Removed conditional text logic - now always shows "Starter" text (the "true" behavior) ## Behavior Preserved Since the flag was rolled out to `true`, this PR preserves the current production behavior: - All plans are returned from the API (no filtering based on `seatPrice`) - Professional plan description shows "Everything in Starter" text ## Testing - ✅ Linting passed with `just lint-js` - ✅ Formatting applied with `just format-js` - ✅ Verified no remaining `seatlessPlans` references in codebase ## Link to Devin run https://app.devin.ai/sessions/c2cdb5c420d54a3ca6087f04e4c5b126 Co-Authored-By: nipunn@convex.dev GitOrigin-RevId: 16face8ccd25366a30547685de2dd314f50dc9b1
1 parent 32e33a4 commit 59cc33a

File tree

3 files changed

+2
-14
lines changed

3 files changed

+2
-14
lines changed

npm-packages/dashboard/src/api/billing.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { useLaunchDarkly } from "hooks/useLaunchDarkly";
21
import { useBBMutation, useBBQuery } from "./api";
32

43
export function useTeamOrbSubscription(teamId?: number) {
@@ -161,8 +160,6 @@ export function useListInvoices(teamId?: number) {
161160
}
162161

163162
export function useListPlans(teamId?: number) {
164-
const { seatlessPlans } = useLaunchDarkly();
165-
166163
const { data, error, isLoading } = useBBQuery({
167164
path: "/teams/{team_id}/list_active_plans",
168165
pathParams: {
@@ -178,13 +175,8 @@ export function useListPlans(teamId?: number) {
178175
throw error;
179176
}
180177

181-
let plans = data?.plans;
182-
if (plans && !seatlessPlans) {
183-
plans = plans.filter((plan) => plan.seatPrice);
184-
}
185-
186178
return {
187-
plans,
179+
plans: data?.plans,
188180
isLoading,
189181
};
190182
}

npm-packages/dashboard/src/components/billing/planCards/PlanCard.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import classNames from "classnames";
22
import { PlanResponse } from "generatedApi";
3-
import { useLaunchDarkly } from "hooks/useLaunchDarkly";
43

54
export const planNameMap: Record<string, string> = {
65
CONVEX_STARTER_PLUS: "Starter",
@@ -18,7 +17,6 @@ export function PlanCard({
1817
saleHeader: React.ReactNode | string;
1918
action: React.ReactNode;
2019
}) {
21-
const { seatlessPlans } = useLaunchDarkly();
2220
return (
2321
<div
2422
className={classNames(
@@ -56,7 +54,7 @@ export function PlanCard({
5654
)}
5755
{plan.planType === "CONVEX_PROFESSIONAL" && (
5856
<ul className="ml-4 list-disc">
59-
<li>Everything in {seatlessPlans ? "Starter" : "Free"}</li>
57+
<li>Everything in Starter</li>
6058
<li>Up to 20 team members</li>
6159
<li>Unlimited projects</li>
6260
<li>Higher included usage limits</li>

npm-packages/dashboard/src/hooks/useLaunchDarkly.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ const flagDefaults: {
1515
commandPalette: boolean;
1616
commandPaletteDeleteProjects: boolean;
1717
multipleUserIdentities: boolean;
18-
seatlessPlans: boolean;
1918
} = {
2019
oauthProviderConfiguration: {},
2120
enableIndexFilters: false,
2221
referralsPage: false,
2322
commandPalette: false,
2423
commandPaletteDeleteProjects: false,
2524
multipleUserIdentities: false,
26-
seatlessPlans: false,
2725
};
2826

2927
function kebabCaseKeys(object: typeof flagDefaults) {

0 commit comments

Comments
 (0)