Add shift+click to channel links

This commit is contained in:
brecert
2021-09-07 09:26:12 -04:00
parent 82366cf1ea
commit 53451b58f3
2 changed files with 48 additions and 10 deletions

View File

@@ -140,16 +140,33 @@ export default function Renderer({ content, disallowBigEmoji }: MarkdownProps) {
(ev: MouseEvent) => {
if (ev.currentTarget) {
const element = ev.currentTarget as HTMLAnchorElement;
if (element.dataset.type === 'mention' && ev.shiftKey) {
internalEmit(
"MessageBox",
"append",
`<@${element.dataset.mentionId}>`,
"mention",
);
ev.preventDefault()
} else if (openLink(element.href)) {
if (ev.shiftKey) {
switch (element.dataset.type) {
case "mention": {
internalEmit(
"MessageBox",
"append",
`<@${element.dataset.mentionId}>`,
"mention",
);
ev.preventDefault()
return
}
case "channel_mention": {
internalEmit(
"MessageBox",
"append",
`<#${element.dataset.mentionId}>`,
"channel_mention",
);
ev.preventDefault()
return
}
}
}
if (openLink(element.href)) {
ev.preventDefault();
}
}
@@ -177,6 +194,7 @@ export default function Renderer({ content, disallowBigEmoji }: MarkdownProps) {
element.removeAttribute("target");
const link = determineLink(element.href);
console.log(link)
switch (link.type) {
case "profile": {
element.setAttribute(
@@ -189,6 +207,19 @@ export default function Renderer({ content, disallowBigEmoji }: MarkdownProps) {
)
break;
}
case "navigate": {
if (link.navigation_type === 'channel') {
element.setAttribute(
"data-type",
"channel_mention",
);
element.setAttribute(
"data-mention-id",
link.channel_id
)
}
break;
}
case "external": {
element.setAttribute("target", "_blank");
break;