import type { ReactNode } from "react";
import { NostrLink } from "element/nostr-link";
const FileExtensionRegex = /\.([\w]+)$/i;
interface HyperTextProps {
link: string;
children: ReactNode;
}
export function HyperText({ link, children }: HyperTextProps) {
try {
const url = new URL(link);
const extension =
FileExtensionRegex.test(url.pathname.toLowerCase()) && RegExp.$1;
if (extension) {
switch (extension) {
case "gif":
case "jpg":
case "jpeg":
case "png":
case "bmp":
case "webp": {
return (
);
}
case "wav":
case "mp3":
case "ogg": {
return ;
}
case "mp4":
case "mov":
case "mkv":
case "avi":
case "m4v":
case "webm": {
return ;
}
default:
return {children || url.toString()};
}
} else if (url.protocol === "nostr:" || url.protocol === "web+nostr:") {
return ;
} else {
{children}
;
}
} catch (error) {
console.error(error);
// Ignore the error.
}
return (
{children}
);
}