feat: always show link warning for masked links

This commit is contained in:
Paul Makles 2023-06-12 09:51:17 +01:00
parent 449eee006d
commit fead4ca879
No known key found for this signature in database
GPG key ID: 5059F398521BB0F6
4 changed files with 27 additions and 5 deletions

2
external/lang vendored

@ -1 +1 @@
Subproject commit 4cfba33bf590ccaec2ad957c43bec14b14ed2f8b
Subproject commit 42a8856899a6698fff3d3d6b332e343d6384e081

View file

@ -142,7 +142,11 @@ export default function Embed({ embed }: Props) {
<a
onMouseDown={(ev) =>
(ev.button === 0 || ev.button === 1) &&
modalController.openLink(embed.url!)
modalController.openLink(
embed.url!,
undefined,
true,
)
}
className={styles.title}>
{embed.title}
@ -194,7 +198,8 @@ export default function Embed({ embed }: Props) {
modalController.push({ type: "image_viewer", embed })
}
onMouseDown={(ev) =>
ev.button === 1 && modalController.openLink(embed.url)
ev.button === 1 &&
modalController.openLink(embed.url, undefined, true)
}
/>
);

View file

@ -27,7 +27,11 @@ export function RenderAnchor({
target="_blank"
rel="noreferrer"
onClick={(ev) =>
modalController.openLink(href) && ev.preventDefault()
modalController.openLink(
href,
undefined,
ev.currentTarget.innerText !== href,
) && ev.preventDefault()
}
/>
);

View file

@ -208,12 +208,25 @@ class ModalControllerExtended extends ModalController<Modal> {
* Safely open external or internal link
* @param href Raw URL
* @param trusted Whether we trust this link
* @param mismatch Whether to always open link warning
* @returns Whether to cancel default event
*/
openLink(href?: string, trusted?: boolean) {
openLink(href?: string, trusted?: boolean, mismatch?: boolean) {
const link = determineLink(href);
const settings = getApplicationState().settings;
if (mismatch) {
if (href) {
modalController.push({
type: "link_warning",
link: href,
callback: () => this.openLink(href, true) as true,
});
}
return true;
}
switch (link.type) {
case "navigate": {
history.push(link.path);