import { useSecondaryPage } from '@/PageManager' import { ResponsiveMenu, ResponsiveMenuContent, ResponsiveMenuItem, ResponsiveMenuTrigger } from '@/components/ui/responsive-menu' import { toExternalContent } from '@/lib/link' import { truncateUrl } from '@/lib/url' import { cn } from '@/lib/utils' import { ExternalLink as ExternalLinkIcon, MessageSquare } from 'lucide-react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' export default function ExternalLink({ url, className, justOpenLink }: { url: string className?: string justOpenLink?: boolean }) { const { t } = useTranslation() const { push } = useSecondaryPage() const displayUrl = useMemo(() => truncateUrl(url), [url]) if (justOpenLink) { return ( e.stopPropagation()} > {displayUrl} ) } const handleOpenLink = (e?: React.MouseEvent) => { e?.stopPropagation() window.open(url, '_blank', 'noreferrer') } const handleViewDiscussions = (e?: React.MouseEvent) => { e?.stopPropagation() setTimeout(() => push(toExternalContent(url)), 100) // wait for menu to close } return (
e.stopPropagation()}> {displayUrl} {t('Open link')} {t('View Nostr discussions')}
) }