BlueSky & more on desktop
lazurite.stormlightlabs.org/
tauri
rust
typescript
bluesky
appview
atproto
solid
1import { normalizeError } from "$/lib/utils/text";
2import * as logger from "@tauri-apps/plugin-log";
3import { openUrl } from "@tauri-apps/plugin-opener";
4
5export function openExternalUrlFromEvent(event: MouseEvent, uri: string | null | undefined, context: string) {
6 event.stopPropagation();
7 event.preventDefault();
8
9 const normalizedUri = uri?.trim();
10 if (!normalizedUri) {
11 return;
12 }
13
14 void openUrl(normalizedUri).catch((error) => {
15 logger.warn("failed to open external URL", {
16 keyValues: { context, error: normalizeError(error), uri: normalizedUri },
17 });
18 });
19}