'use client';
import Link from 'next/link';
import { Compass, Download, Telescope } from 'lucide-react';
type ProductKey = 'universal-links' | 'extension' | 'explore';
type Card = {
key: ProductKey;
href: string;
icon: React.ReactNode;
title: string;
body: string;
};
const CARDS: Card[] = [
{
key: 'universal-links',
href: '/universal-links',
icon: ,
title: 'Universal links',
body: 'Share aturi.to/handle/collection/rkey. Visitors choose which Atmosphere app opens it.',
},
{
key: 'extension',
href: '/extension',
icon: ,
title: 'Browser extension',
body: 'Inspect AT URIs on any page and jump between Atmosphere apps.',
},
{
key: 'explore',
href: '/explore',
icon: ,
title: 'Atmosphere Explorer',
body: "Browse any account's PDS records, identity history, and backlinks.",
},
];
/**
* Bottom-of-page "explore the rest of aturi" cards. Pass `current` to
* hide the card for the page you're already on so we don't link a page
* to itself.
*/
export default function CrossLinkCards({ current }: { current?: ProductKey }) {
const cards = CARDS.filter((c) => c.key !== current);
return (
);
}
function CrossLinkCard({
icon,
title,
body,
href,
}: {
icon: React.ReactNode;
title: string;
body: string;
href: string;
}) {
return (
{
e.currentTarget.style.borderColor = 'var(--text-accent)';
e.currentTarget.style.background = 'var(--bg-tertiary)';
}}
onMouseLeave={(e) => {
e.currentTarget.style.borderColor = 'var(--border-medium)';
e.currentTarget.style.background = 'var(--bg-secondary)';
}}
>
{icon}
{title}
{body}
);
}