Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 17 additions & 18 deletions apps/dashboard/src/@/utils/pricing.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,30 @@ export const TEAM_PLANS: Record<
}
> = {
growth: {
description: "Ideal for teams building production-grade apps.",
description: "Ideal for small scale teams and startups.",
features: [
"Email Support",
"48hr Guaranteed Response",
"Custom User Wallet Auth",
"Custom In-App Wallet Auth",
"Web, Mobile & Gaming SDKs",
"Server Wallets",
"Contract & Wallet APIs",
"Account Abstraction",
"Managed Infrastructure (RPC, IPFS, etc.)",
"Audited smart contracts",
],
price: 99,
subTitle: "Everything in Starter, plus:",
subTitle: null,
title: "Growth",
trialPeriodDays: 0,
},
pro: {
description: "For large organizations with custom needs.",
description: "For large orgs with custom needs.",
features: [
"Dedicated Account Executive",
"Slack & Telegram Support",
"12hr Guaranteed Response",
"No Rate Limits",
["Custom Infrastructure Add-Ons", "Infrastructure for custom chains."],
["Volume Discounts", "Negotiated volume discounts that fit your scale."],
"Custom Infrastructure Add-Ons",
"Negotiated Volume Discounts",
],
isStartingPriceOnly: true,
price: 1499,
Expand All @@ -46,20 +51,14 @@ export const TEAM_PLANS: Record<
trialPeriodDays: 0,
},
scale: {
description: "For funded startups and mid-size businesses.",
description: "Ideal for mid-size businesses.",
features: [
"Slack & Telegram Support",
"Email Support",
"24hr Guaranteed Response",
"Remove thirdweb branding",
"Audit Logs",
[
"Ecosystem Wallet Add-On",
"Unlocks the ability to deploy your own ecosystem wallets.",
],
[
"Dedicated Infrastructure Add-Ons",
"Dedicated RPC nodes, indexers, etc.",
],
"Ecosystem Wallet Add-On",
"Dedicated Infrastructure Add-Ons (RPC, Insight)",
],
price: 499,
subTitle: "Everything in Growth, plus:",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,10 +177,7 @@ export function PlanInfoCardUI(props: {
<div className="flex flex-col items-center py-8 text-center max-sm:gap-4">
<CircleAlertIcon className="mb-3 text-muted-foreground lg:size-6" />
<p>Your plan includes a fixed amount of free usage.</p>
<p>
To unlock additional usage, upgrade your plan to Starter or
Growth.
</p>
<p>To unlock additional usage, upgrade your plan to Growth.</p>

<div className="mt-4">
<ToolTipLabel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ export const BillingPricing: React.FC<BillingPricingProps> = ({
validTeamPlan === "starter" ||
validTeamPlan === "growth_legacy"));

const highlightStarterPlan = highlightPlan === "starter";
const highlightScalePlan =
highlightPlan === "scale" ||
(!highlightPlan &&
Expand All @@ -94,23 +93,7 @@ export const BillingPricing: React.FC<BillingPricingProps> = ({

<div className="h-5" />

<div className="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4">
{/* Starter */}
<PricingCard
billingPlan="starter"
billingStatus={team.billingStatus}
cta={getPlanCta(
validTeamPlan,
"starter",
isCurrentPlanScheduledToCancel,
)}
current={validTeamPlan === "starter"}
getTeam={getTeam}
highlighted={highlightStarterPlan}
teamId={team.id}
teamSlug={team.slug}
/>

<div className="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3">
{/* Growth */}
<PricingCard
activeTrialEndsAt={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ export function TeamDedicatedSupportCard(props: {
const [selectedChannelType, setSelectedChannelType] =
useState<ChannelType>("slack");

const isFeatureEnabled =
props.team.billingPlan === "scale" || props.team.billingPlan === "pro";
const isFeatureEnabled = props.team.billingPlan === "pro";
Comment thread
0xFirekeeper marked this conversation as resolved.

const createMutation = useMutation({
mutationFn: async (params: {
Expand Down Expand Up @@ -107,8 +106,7 @@ export function TeamDedicatedSupportCard(props: {
bottomText={
!isFeatureEnabled ? (
<>
Upgrade to the <b>Scale</b> or <b>Pro</b> plan to unlock this
feature.
Upgrade to the <b>Pro</b> plan to unlock this feature.
</>
) : hasDefaultTeamName ? (
"Please update your team name before requesting a dedicated support channel."
Expand All @@ -126,17 +124,7 @@ export function TeamDedicatedSupportCard(props: {
}
saveButton={
isFeatureEnabled
? {
disabled: createMutation.isPending,
isPending: createMutation.isPending,
label: "Create Support Channel",
onClick: () =>
createMutation.mutate({
channelType: selectedChannelType,
teamId: props.team.id,
}),
}
: hasDefaultTeamName
? hasDefaultTeamName
? {
disabled: false,
isPending: false,
Expand All @@ -145,14 +133,24 @@ export function TeamDedicatedSupportCard(props: {
router.push(`/team/${props.team.slug}/~/settings`),
}
: {
disabled: false,
isPending: false,
label: "Upgrade Plan",
disabled: createMutation.isPending,
isPending: createMutation.isPending,
label: "Create Support Channel",
onClick: () =>
router.push(
`/team/${props.team.slug}/~/billing?showPlans=true&highlight=scale`,
),
createMutation.mutate({
channelType: selectedChannelType,
teamId: props.team.id,
}),
}
: {
disabled: false,
isPending: false,
label: "Upgrade Plan",
onClick: () =>
router.push(
`/team/${props.team.slug}/~/billing?showPlans=true&highlight=pro`,
),
}
}
>
<div className="md:w-[450px]">
Expand Down
Loading