32 lines
892 B
TypeScript
32 lines
892 B
TypeScript
|
|
import Link from "next/link";
|
||
|
|
import { Lock } from "lucide-react";
|
||
|
|
import { Button } from "@/components/ui/button";
|
||
|
|
import { Card, CardContent } from "@/components/ui/card";
|
||
|
|
|
||
|
|
export function UpgradeGate({
|
||
|
|
title,
|
||
|
|
description,
|
||
|
|
requiredPlan,
|
||
|
|
}: {
|
||
|
|
title: string;
|
||
|
|
description: string;
|
||
|
|
requiredPlan: string;
|
||
|
|
}) {
|
||
|
|
return (
|
||
|
|
<Card>
|
||
|
|
<CardContent className="flex flex-col items-center gap-3 py-16 text-center">
|
||
|
|
<span className="flex h-14 w-14 items-center justify-center rounded-2xl bg-brand/10 text-brand">
|
||
|
|
<Lock className="h-6 w-6" />
|
||
|
|
</span>
|
||
|
|
<div>
|
||
|
|
<p className="font-medium">{title}</p>
|
||
|
|
<p className="max-w-md text-sm text-muted-foreground">{description}</p>
|
||
|
|
</div>
|
||
|
|
<Button asChild>
|
||
|
|
<Link href="/billing">Upgrade to {requiredPlan}</Link>
|
||
|
|
</Button>
|
||
|
|
</CardContent>
|
||
|
|
</Card>
|
||
|
|
);
|
||
|
|
}
|