unsloth/studio/frontend/src/lib/open-link.ts
Daniel Han 85314ed162
Studio frontend: reduce and tighten code comments (#6099)
Trim and tighten code comments across studio/frontend TS/JS. Comment-only: every changed file verified code-identical to main via the TypeScript printer signature comparison.
2026-06-08 23:10:35 -07:00

30 lines
861 B
TypeScript

import { isTauri } from "@/lib/api-base";
/**
* Open a URL in the system browser (Tauri) or new tab (web). Handles anchor
* and mailto: links natively. Returns true when the caller should
* preventDefault; false to let native navigation proceed (relative, empty).
*/
export function openLink(url: string): boolean {
if (!url) return false;
// Anchor links scroll within the page, don't open externally
if (url.startsWith("#")) {
window.location.hash = url;
return true;
}
// Relative URLs: let the browser / router handle them natively
if (!url.includes("://") && !url.startsWith("mailto:")) {
return false;
}
if (isTauri) {
import("@tauri-apps/plugin-opener").then(({ openUrl }) => {
openUrl(url).catch(console.error);
});
} else {
window.open(url, "_blank", "noopener,noreferrer");
}
return true;
}