<3/products/personal-site/components/

EssayList.tsx

import Link from "next/link";
import styles from "./EssayList.module.css";

export type EssayListItem = {
  title: string;
  href: string;
  external?: boolean;
};

export function EssayList({ essays }: { essays: EssayListItem[] }) {
  if (essays.length === 0) return null;

  return (
    <ul className={styles.list}>
      {essays.map((essay) => (
        <li key={essay.href} className={styles.item}>
          {essay.external ? (
            <a
              href={essay.href}
              target="_blank"
              rel="noopener noreferrer"
              className={styles.link}
            >
              {essay.title}
            </a>
          ) : (
            <Link href={essay.href} className={styles.link}>
              {essay.title}
            </Link>
          )}
        </li>
      ))}
    </ul>
  );
}