diff --git a/packages/presentation/src/components/message/Nodes.svelte b/packages/presentation/src/components/message/Nodes.svelte index 140ed1e62a..4f00377d30 100644 --- a/packages/presentation/src/components/message/Nodes.svelte +++ b/packages/presentation/src/components/message/Nodes.svelte @@ -17,6 +17,10 @@ import { CheckBox, Component, navigate, parseLocation } from '@hcengineering/ui' import view from '@hcengineering/view' + import { getMetadata } from '@hcengineering/platform' + + import presentation from '../../plugin' + export let nodes: NodeListOf function prevName (pos: number, nodes: NodeListOf): string | undefined { @@ -29,6 +33,21 @@ } return nodes[pos - 1]?.nodeName } + + function handleLink (node: HTMLElement, e: MouseEvent) { + try { + const href = node.getAttribute('href') + if (href) { + const url = new URL(href) + const frontUrl = getMetadata(presentation.metadata.FrontUrl) ?? window.location.origin + + if (url.origin === frontUrl) { + e.preventDefault() + navigate(parseLocation(url)) + } + } + } catch {} + } {#if nodes} @@ -81,20 +100,9 @@ {:else if node.nodeName === 'DIV'}
{:else if node.nodeName === 'A'} - { - try { - const url = new URL(node.getAttribute('href')) - - if (url.origin === window.location.origin) { - e.preventDefault() - navigate(parseLocation(url)) - } - } catch {} - }}> + handleLink(node, e)}> + + {:else if node.nodeName === 'LABEL'} {:else if node.nodeName === 'INPUT'} diff --git a/plugins/login-resources/src/components/InviteLink.svelte b/plugins/login-resources/src/components/InviteLink.svelte index bd0db34180..5d62444380 100644 --- a/plugins/login-resources/src/components/InviteLink.svelte +++ b/plugins/login-resources/src/components/InviteLink.svelte @@ -15,7 +15,8 @@