Procházet zdrojové kódy

feat: support opening new tab in markdown button (#12213)

tags/0.15.0
Bowen Liang před 10 měsíci
rodič
revize
ab469aa07d
Žádný účet není propojen s e-mailovou adresou tvůrce revize
1 změnil soubory, kde provedl 18 přidání a 1 odebrání
  1. 18
    1
      web/app/components/base/markdown-blocks/button.tsx

+ 18
- 1
web/app/components/base/markdown-blocks/button.tsx Zobrazit soubor

@@ -6,13 +6,30 @@ const MarkdownButton = ({ node }: any) => {
const { onSend } = useChatContext()
const variant = node.properties.dataVariant
const message = node.properties.dataMessage
const link = node.properties.dataLink
const size = node.properties.dataSize

function is_valid_url(url: string): boolean {
try {
const parsed_url = new URL(url)
return ['http:', 'https:'].includes(parsed_url.protocol)
}
catch {
return false
}
}

return <Button
variant={variant}
size={size}
className={cn('!h-8 !px-3 select-none')}
onClick={() => onSend?.(message)}
onClick={() => {
if (is_valid_url(link)) {
window.open(link, '_blank')
return
}
onSend?.(message)
}}
>
<span className='text-[13px]'>{node.children[0]?.value || ''}</span>
</Button>

Načítá se…
Zrušit
Uložit