import { sanitizeUrl } from "@braintree/sanitize-url"; export const normalizeLink = (link: string) => { link = link.trim(); if (!link) { return link; } return sanitizeUrl(link); }; export const isLocalLink = (link: string | null) => { return !!(link?.includes(location.origin) || link?.startsWith("/")); }; /** * Returns URL sanitized and safe for usage in places such as * iframe's src attribute or href attributes. */ export const toValidURL = (link: string) => { link = normalizeLink(link); // make relative links into fully-qualified urls if (link.startsWith("/")) { return `${location.origin}${link}`; } try { new URL(link); } catch { // if link does not parse as URL, assume invalid and return blank page return "about:blank"; } return link; };