import { useLocation } from "wouter"; import { cx } from "../class-names.ts"; import type { TrustedHtml } from "../types.ts"; import { content } from "./style.css.ts"; // export { richTextTheme } from "./style.css.ts"; export function RichText(props: { trustedHtml: TrustedHtml; className?: string; }) { const [_, navigate] = useLocation(); return (
{ if (!(event.target instanceof HTMLElement)) { return; } const anchor = event.target.closest("a"); if (!anchor) { return; } // The actual value in the HTML const href = anchor.getAttribute("href"); if (!href) { return; } if (href.startsWith("#")) { return; } if (href.startsWith("/")) { event.preventDefault(); event.stopPropagation(); navigate(`~${href}`); return; } event.preventDefault(); event.stopPropagation(); const tempLink = document.createElement("a"); tempLink.href = anchor.href; tempLink.target = "_blank"; tempLink.rel = "noopener noreferrer"; tempLink.click(); }} /> ); }