Files
outline/app/utils/urls.ts
Tom Moor d7ee801fe4 feat: Show icon on external links (#3100)
* feat: External links get treatment

* cache decorations
2022-02-16 18:05:02 -08:00

29 lines
560 B
TypeScript

export function isHash(href: string) {
if (href[0] === "#") {
return true;
}
try {
const outline = new URL(window.location.href);
const parsed = new URL(href);
if (
outline.hostname === parsed.hostname &&
outline.pathname === parsed.pathname &&
!!parsed.hash
) {
return true;
}
} catch (e) {
// failed to parse as url
}
return false;
}
export function decodeURIComponentSafe(text: string) {
return text
? decodeURIComponent(text.replace(/%(?![0-9][0-9a-fA-F]+)/g, "%25"))
: text;
}