/** * @fileoverview Link component for rendering tags in Markdown. * Extracted from the main markdown renderer for modularity. * Handles special rendering for "abbr:" type links for interactive chat actions. */ import React from 'react' import { useChatContext } from '@/app/components/base/chat/chat/context' import { isValidUrl } from './utils' const Link = ({ node, children, ...props }: any) => { const { onSend } = useChatContext() if (node.properties?.href && node.properties.href?.toString().startsWith('abbr')) { const hidden_text = decodeURIComponent(node.properties.href.toString().split('abbr:')[1]) return onSend?.(hidden_text)} title={node.children[0]?.value || ''}>{node.children[0]?.value || ''} } else { const href = props.href || node.properties?.href if(!isValidUrl(href)) return {children} return {children || 'Download'} } } export default Link