diff --git a/.changeset/many-hounds-wave.md b/.changeset/many-hounds-wave.md new file mode 100644 index 00000000000..921981d4aa3 --- /dev/null +++ b/.changeset/many-hounds-wave.md @@ -0,0 +1,8 @@ +--- +"@thirdweb-dev/service-utils": patch +--- + +remove: +- `starter_legacy` plan type +- `billingPlanVersion` field +- `growthTrialEligible` field diff --git a/apps/dashboard/src/@/components/blocks/pricing-card.tsx b/apps/dashboard/src/@/components/blocks/pricing-card.tsx index 47ab77c4fd8..789125f4b34 100644 --- a/apps/dashboard/src/@/components/blocks/pricing-card.tsx +++ b/apps/dashboard/src/@/components/blocks/pricing-card.tsx @@ -192,7 +192,6 @@ const billingPlanToSkuMap: Record = accelerate: undefined, free: undefined, growth_legacy: undefined, - starter_legacy: undefined, }; type FeatureItemProps = { diff --git a/apps/dashboard/src/app/(app)/components/TeamPlanBadge.tsx b/apps/dashboard/src/app/(app)/components/TeamPlanBadge.tsx index d87cf8ceaef..454c0e99ef1 100644 --- a/apps/dashboard/src/app/(app)/components/TeamPlanBadge.tsx +++ b/apps/dashboard/src/app/(app)/components/TeamPlanBadge.tsx @@ -14,7 +14,7 @@ const teamPlanToBadgeVariant: Record< free: "secondary", // yellow starter: "warning", - starter_legacy: "warning", + growth_legacy: "warning", // green accelerate: "success", @@ -28,9 +28,7 @@ export function getTeamPlanBadgeLabel(plan: Team["billingPlan"]) { if (plan === "growth_legacy") { return "Growth - Legacy"; } - if (plan === "starter_legacy") { - return "Starter - Legacy"; - } + return plan; } diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.stories.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.stories.tsx index 5eccd417f6f..68cc850d597 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.stories.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.stories.tsx @@ -24,12 +24,6 @@ export const Free: Story = { }, }; -export const StarterLegacy: Story = { - args: { - plan: "starter_legacy", - }, -}; - export const Starter: Story = { args: { plan: "starter", diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.tsx index 2c3cfee7107..244d5272bc2 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/billing/components/PlanInfoCard.tsx @@ -68,12 +68,7 @@ export function PlanInfoCardUI(props: {

- {validPlan === "growth_legacy" - ? "Growth" - : validPlan === "starter_legacy" - ? "Starter" - : validPlan}{" "} - Plan + {validPlan === "growth_legacy" ? "Growth" : validPlan} Plan

{validPlan.includes("legacy") && ( Legacy diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/layout.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/layout.tsx index fba9572f5d5..00c81d3b704 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/layout.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/layout.tsx @@ -1,8 +1,5 @@ import { getTeamBySlug } from "@/api/team"; -import { Button } from "@/components/ui/button"; -import { TrackedLinkTW } from "@/components/ui/tracked-link"; import { PosthogIdentifierServer } from "components/wallets/PosthogIdentifierServer"; -import { ArrowRightIcon } from "lucide-react"; import { redirect } from "next/navigation"; import { Suspense } from "react"; import { getAuthToken } from "../../api/lib/getAuthToken"; @@ -50,10 +47,6 @@ export default async function RootTeamLayout(props: { return ; } - if (team.billingPlan === "starter_legacy") { - return ; - } - return null; })()} @@ -71,33 +64,3 @@ export default async function RootTeamLayout(props: {
); } - -function StarterLegacyDiscontinuedBanner(props: { - teamSlug: string; -}) { - return ( -
-
-

Starter legacy plans are being discontinued on May 31, 2025

-

- To prevent service interruptions and losing access to your current - features select a new plan -

- -
-
- ); -} diff --git a/apps/dashboard/src/app/(app)/team/components/TeamHeader/TeamHeaderUI.stories.tsx b/apps/dashboard/src/app/(app)/team/components/TeamHeader/TeamHeaderUI.stories.tsx index 4051f3f2471..3caa39746e1 100644 --- a/apps/dashboard/src/app/(app)/team/components/TeamHeader/TeamHeaderUI.stories.tsx +++ b/apps/dashboard/src/app/(app)/team/components/TeamHeader/TeamHeaderUI.stories.tsx @@ -49,10 +49,6 @@ function Variants(props: { (t) => t.team.billingPlan === "starter", ); - const starterLegacyTeam = teamsAndProjectsStub.find( - (t) => t.team.billingPlan === "starter_legacy", - ); - const growthTeam = teamsAndProjectsStub.find( (t) => t.team.billingPlan === "growth", ); @@ -80,8 +76,7 @@ function Variants(props: { !growthLegacyTeam || !accelerateTeam || !scaleTeam || - !proTeam || - !starterLegacyTeam + !proTeam ) { return
invalid storybook stubs
; } @@ -97,10 +92,6 @@ function Variants(props: { - - - - diff --git a/apps/dashboard/src/components/onboarding/ApplyForOpCreditsModal.tsx b/apps/dashboard/src/components/onboarding/ApplyForOpCreditsModal.tsx index 782fafae1a3..af759a57504 100644 --- a/apps/dashboard/src/components/onboarding/ApplyForOpCreditsModal.tsx +++ b/apps/dashboard/src/components/onboarding/ApplyForOpCreditsModal.tsx @@ -51,10 +51,7 @@ export const PlanToCreditsRecord: Record = { plan: "starter", ...tier1Credits, }, - starter_legacy: { - plan: "starter_legacy", - ...tier1Credits, - }, + growth: { plan: "growth", ...tier1Credits, diff --git a/apps/dashboard/src/components/settings/Account/Billing/GatedSwitch.stories.tsx b/apps/dashboard/src/components/settings/Account/Billing/GatedSwitch.stories.tsx index 498c0eb5e5f..9be3d200cc8 100644 --- a/apps/dashboard/src/components/settings/Account/Billing/GatedSwitch.stories.tsx +++ b/apps/dashboard/src/components/settings/Account/Billing/GatedSwitch.stories.tsx @@ -33,7 +33,6 @@ function Variants() { const plans: Team["billingPlan"][] = [ "free", - "starter_legacy", "starter", "growth_legacy", "growth", diff --git a/apps/dashboard/src/components/settings/Account/Billing/Pricing.tsx b/apps/dashboard/src/components/settings/Account/Billing/Pricing.tsx index 3504cba16b4..b729f64ac87 100644 --- a/apps/dashboard/src/components/settings/Account/Billing/Pricing.tsx +++ b/apps/dashboard/src/components/settings/Account/Billing/Pricing.tsx @@ -13,7 +13,6 @@ import { PRO_CONTACT_US_URL } from "../../../../constants/pro"; // this is used to determine whether to show "Upgrade" or "Downgrade" label based on tier level const planToTierRecord: Record = { free: 0, - starter_legacy: 1, starter: 2, growth_legacy: 3, growth: 4, @@ -71,11 +70,7 @@ export const BillingPricing: React.FC = ({ validTeamPlan === "starter" || validTeamPlan === "growth_legacy")); - const highlightStarterPlan = - highlightPlan === "starter" || - (!highlightPlan && - !isCurrentPlanScheduledToCancel && - validTeamPlan === "starter_legacy"); + const highlightStarterPlan = highlightPlan === "starter"; const highlightScalePlan = highlightPlan === "scale" || (!highlightPlan && diff --git a/apps/dashboard/src/components/settings/Account/Billing/planToTierRecord.ts b/apps/dashboard/src/components/settings/Account/Billing/planToTierRecord.ts index f23edf14885..1e146e09a58 100644 --- a/apps/dashboard/src/components/settings/Account/Billing/planToTierRecord.ts +++ b/apps/dashboard/src/components/settings/Account/Billing/planToTierRecord.ts @@ -4,7 +4,6 @@ import type { Team } from "@/api/team"; export const planToTierRecordForGating: Record = { free: 0, starter: 1, - starter_legacy: 2, growth: 3, accelerate: 4, growth_legacy: 5, diff --git a/apps/dashboard/src/stories/stubs.ts b/apps/dashboard/src/stories/stubs.ts index 12fc9de81d5..37d29fc69e4 100644 --- a/apps/dashboard/src/stories/stubs.ts +++ b/apps/dashboard/src/stories/stubs.ts @@ -40,8 +40,6 @@ export function teamStub(id: string, billingPlan: Team["billingPlan"]): Team { createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), billingEmail: "foo@example.com", - growthTrialEligible: false, - billingPlanVersion: 1, canCreatePublicChains: null, image: null, isOnboarded: true, @@ -132,10 +130,6 @@ export const teamsAndProjectsStub: Array<{ team: Team; projects: Project[] }> = team: teamStub("2", "starter"), projects: [projectStub("t2p1", "team-2"), projectStub("t2p2", "team-2")], }, - { - team: teamStub("3", "starter_legacy"), - projects: [projectStub("t3p1", "team-3"), projectStub("t2p2", "team-2")], - }, { team: teamStub("3", "growth"), projects: [projectStub("t3p1", "team-3"), projectStub("t2p2", "team-2")], diff --git a/apps/dashboard/src/utils/pricing.tsx b/apps/dashboard/src/utils/pricing.tsx index abc668245e6..3a0da853a7a 100644 --- a/apps/dashboard/src/utils/pricing.tsx +++ b/apps/dashboard/src/utils/pricing.tsx @@ -3,7 +3,7 @@ import type { Team } from "@/api/team"; type SelectivePlans = Exclude< Team["billingPlan"], // we will never show cards for these plans - so exclude it - "accelerate" | "growth_legacy" | "free" | "starter_legacy" + "accelerate" | "growth_legacy" | "free" >; export const TEAM_PLANS: Record< diff --git a/packages/service-utils/src/core/api.ts b/packages/service-utils/src/core/api.ts index 844e3c04939..e76c232011c 100644 --- a/packages/service-utils/src/core/api.ts +++ b/packages/service-utils/src/core/api.ts @@ -105,7 +105,6 @@ type TeamCapabilities = { type TeamPlan = | "free" | "starter" - | "starter_legacy" | "growth_legacy" | "growth" | "accelerate" @@ -119,7 +118,6 @@ export type TeamResponse = { image: string | null; billingPlan: TeamPlan; supportPlan: TeamPlan; - billingPlanVersion: number; createdAt: string; updatedAt: string | null; billingEmail: string | null; @@ -133,7 +131,6 @@ export type TeamResponse = { | "invalidPayment" | "pastDue" | null; - growthTrialEligible: false; canCreatePublicChains: boolean | null; enabledScopes: ServiceName[]; isOnboarded: boolean; diff --git a/packages/service-utils/src/mocks.ts b/packages/service-utils/src/mocks.ts index 4f52effeaef..62939f432fb 100644 --- a/packages/service-utils/src/mocks.ts +++ b/packages/service-utils/src/mocks.ts @@ -52,10 +52,8 @@ export const validTeamResponse: TeamResponse = { updatedAt: new Date("2024-06-01").toISOString(), billingPlan: "free", supportPlan: "free", - billingPlanVersion: 1, billingEmail: "test@example.com", billingStatus: "noPayment", - growthTrialEligible: false, canCreatePublicChains: false, enabledScopes: ["storage", "rpc", "bundler"], isOnboarded: true,