import type { ComponentProps } from 'react' import type { ExtraProps } from 'streamdown' import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' import { useChatContext } from '@/app/components/base/chat/chat/context' import { getMarkdownButtonAppearance } from './button-appearance' import { isValidUrl } from './utils' type MarkdownButtonProps = ComponentProps<'button'> & ExtraProps function getStringProperty(value: unknown) { return typeof value === 'string' ? value : undefined } const MarkdownButton = ({ node }: MarkdownButtonProps) => { const { onSend } = useChatContext() const appearance = getMarkdownButtonAppearance( node?.properties.dataVariant, node?.properties.dataSize, ) const message = getStringProperty(node?.properties.dataMessage) const link = getStringProperty(node?.properties.dataLink) const firstChild = node?.children[0] const label = firstChild?.type === 'text' ? firstChild.value : '' return ( ) } MarkdownButton.displayName = 'MarkdownButton' export default MarkdownButton