Some checks are pending
Deploy to Cloudflare Workers (OpenNext) / deploy (push) Waiting to run
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import Link from "next/link";
|
|
import type { PartnerProfile } from "@/content/partners";
|
|
import { PartnerLogoPlaceholder } from "@/components/brand/PartnerLogoPlaceholder";
|
|
import { Card, CardContent, CardDescription, CardHeader } from "@/components/ui/card";
|
|
import { Button } from "@/components/ui/button";
|
|
|
|
type Props = {
|
|
partner: PartnerProfile;
|
|
tierLabel?: string;
|
|
};
|
|
|
|
export function PartnerCard({ partner, tierLabel }: Props) {
|
|
return (
|
|
<Card className="h-full border-border/80">
|
|
{tierLabel && (
|
|
<p className="px-6 pt-6 text-xs font-semibold uppercase tracking-widest text-muted-foreground">
|
|
{tierLabel}
|
|
</p>
|
|
)}
|
|
<CardHeader className={tierLabel ? "pt-2" : undefined}>
|
|
<PartnerLogoPlaceholder size="lg" className="w-full" />
|
|
</CardHeader>
|
|
<CardContent className="flex flex-1 flex-col">
|
|
<CardDescription className="flex-1 text-base leading-relaxed">
|
|
{partner.description}
|
|
</CardDescription>
|
|
{partner.url && !partner.isPlaceholder && (
|
|
<Button variant="link" className="mt-4 h-auto p-0 text-[#1f3d7e]" asChild>
|
|
<Link href={partner.url} target="_blank" rel="noopener noreferrer">
|
|
More info
|
|
</Link>
|
|
</Button>
|
|
)}
|
|
</CardContent>
|
|
</Card>
|
|
);
|
|
}
|