/**
 * @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(!href || !isValidUrl(href))
      return {children}
    return {children || 'Download'}
  }
}
export default Link