mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
fix(desktop): foreground app for deep links (#1880)
Signed-off-by: Wes <wesbillman@users.noreply.github.com> Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
@@ -1,9 +1,25 @@
|
||||
use serde::Serialize;
|
||||
use tauri::Emitter;
|
||||
use tauri::{Emitter, Manager};
|
||||
use url::Url;
|
||||
|
||||
use crate::nostr_bind;
|
||||
|
||||
fn activate_main_window(app: &tauri::AppHandle) {
|
||||
let Some(window) = app.get_webview_window("main") else {
|
||||
return;
|
||||
};
|
||||
|
||||
if let Err(error) = window.unminimize() {
|
||||
eprintln!("buzz-desktop: failed to unminimize main window for deep link: {error}");
|
||||
}
|
||||
if let Err(error) = window.show() {
|
||||
eprintln!("buzz-desktop: failed to show main window for deep link: {error}");
|
||||
}
|
||||
if let Err(error) = window.set_focus() {
|
||||
eprintln!("buzz-desktop: failed to focus main window for deep link: {error}");
|
||||
}
|
||||
}
|
||||
|
||||
/// Parse the query string of a `buzz://message?…` URL into the JSON
|
||||
/// payload emitted on `deep-link-message`. Returns `None` when a required
|
||||
/// param (`channel`, `id`) is missing or empty — mirroring the validation
|
||||
@@ -169,6 +185,7 @@ pub(crate) fn handle_deep_link_url(app: &tauri::AppHandle, url_str: &str) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
activate_main_window(app);
|
||||
let _ = app.emit("deep-link-connect", relay_url);
|
||||
}
|
||||
Some("join") => {
|
||||
@@ -179,6 +196,7 @@ pub(crate) fn handle_deep_link_url(app: &tauri::AppHandle, url_str: &str) {
|
||||
eprintln!("buzz-desktop: join deep link missing/invalid relay or code: {url_str}");
|
||||
return;
|
||||
};
|
||||
activate_main_window(app);
|
||||
let _ = app.emit("deep-link-join", payload);
|
||||
}
|
||||
Some("message") => {
|
||||
@@ -194,10 +212,12 @@ pub(crate) fn handle_deep_link_url(app: &tauri::AppHandle, url_str: &str) {
|
||||
eprintln!("buzz-desktop: message deep link missing channel or id: {url_str}");
|
||||
return;
|
||||
};
|
||||
activate_main_window(app);
|
||||
let _ = app.emit("deep-link-message", payload);
|
||||
}
|
||||
Some("nostr-bind") => match parse_nostr_bind_deep_link(&url) {
|
||||
Ok(payload) => {
|
||||
activate_main_window(app);
|
||||
let _ = app.emit("deep-link-nostr-bind", payload);
|
||||
}
|
||||
Err(error) => {
|
||||
|
||||
Reference in New Issue
Block a user