link to billing page

This commit is contained in:
miloschwartz
2026-02-10 22:07:36 -08:00
committed by Owen Schwartz
parent 33976cd056
commit beb44fe856

View File

@@ -8,6 +8,7 @@ import { useTranslations } from "next-intl";
import Link from "next/link"; import Link from "next/link";
import { useEnvContext } from "@app/hooks/useEnvContext"; import { useEnvContext } from "@app/hooks/useEnvContext";
import { Tier } from "@server/types/Tiers"; import { Tier } from "@server/types/Tiers";
import { useParams } from "next/navigation";
const TIER_ORDER: Tier[] = ["tier1", "tier2", "tier3", "enterprise"]; const TIER_ORDER: Tier[] = ["tier1", "tier2", "tier3", "enterprise"];
@@ -37,20 +38,18 @@ const bannerContentClassName = "py-3 px-4";
const bannerRowClassName = const bannerRowClassName =
"flex items-center gap-2.5 text-sm text-muted-foreground"; "flex items-center gap-2.5 text-sm text-muted-foreground";
const bannerIconClassName = "size-4 shrink-0 text-purple-500"; const bannerIconClassName = "size-4 shrink-0 text-purple-500";
const PRICING_URL = "https://pangolin.net/pricing";
function tierLinkRenderer(chunks: React.ReactNode) { function getTierLinkRenderer(billingHref: string) {
return ( return function tierLinkRenderer(chunks: React.ReactNode) {
<Link return (
href={PRICING_URL} <Link
target="_blank" href={billingHref}
rel="noopener noreferrer" className="inline-flex items-center gap-1 font-medium text-purple-600 underline"
className="inline-flex items-center gap-1 font-medium text-purple-600 underline" >
> {chunks}
{chunks} </Link>
<ExternalLink className="size-3.5 shrink-0" /> );
</Link> };
);
} }
type Props = { type Props = {
@@ -59,10 +58,14 @@ type Props = {
export function PaidFeaturesAlert({ tiers }: Props) { export function PaidFeaturesAlert({ tiers }: Props) {
const t = useTranslations(); const t = useTranslations();
const params = useParams();
const orgId = params?.orgId as string | undefined;
const { hasSaasSubscription, hasEnterpriseLicense, isActive, subscriptionTier } = usePaidStatus(); const { hasSaasSubscription, hasEnterpriseLicense, isActive, subscriptionTier } = usePaidStatus();
const { env } = useEnvContext(); const { env } = useEnvContext();
const requiredTier = getRequiredTier(tiers); const requiredTier = getRequiredTier(tiers);
const requiredTierName = requiredTier ? t(TIER_TRANSLATION_KEYS[requiredTier]) : null; const requiredTierName = requiredTier ? t(TIER_TRANSLATION_KEYS[requiredTier]) : null;
const billingHref = orgId ? `/${orgId}/settings/billing` : "https://pangolin.net/pricing";
const tierLinkRenderer = getTierLinkRenderer(billingHref);
if (env.flags.disableEnterpriseFeatures) { if (env.flags.disableEnterpriseFeatures) {
return null; return null;