mirror of
https://github.com/revoltchat/revite.git
synced 2024-11-21 14:40:58 -05:00
feat: always show link warning for masked links
This commit is contained in:
parent
449eee006d
commit
fead4ca879
4 changed files with 27 additions and 5 deletions
2
external/lang
vendored
2
external/lang
vendored
|
@ -1 +1 @@
|
|||
Subproject commit 4cfba33bf590ccaec2ad957c43bec14b14ed2f8b
|
||||
Subproject commit 42a8856899a6698fff3d3d6b332e343d6384e081
|
|
@ -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)
|
||||
}
|
||||
/>
|
||||
);
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
/>
|
||||
);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue