diff --git a/frontend/app.vue b/frontend/app.vue index 48885ec..a08a3a2 100644 --- a/frontend/app.vue +++ b/frontend/app.vue @@ -650,6 +650,7 @@ async function loadTelegramConnectStatus() { async function startTelegramBusinessConnect() { if (telegramConnectBusy.value) return; telegramConnectBusy.value = true; + const popup = process.client ? window.open("about:blank", "_blank", "noopener,noreferrer") : null; try { const result = await $fetch<{ ok: boolean; @@ -660,8 +661,15 @@ async function startTelegramBusinessConnect() { telegramConnectStatus.value = result?.status ?? "pending_link"; telegramConnectUrl.value = String(result?.connectUrl ?? "").trim(); if (telegramConnectUrl.value && process.client) { - window.open(telegramConnectUrl.value, "_blank", "noopener,noreferrer"); + if (popup) { + popup.location.href = telegramConnectUrl.value; + } else { + window.open(telegramConnectUrl.value, "_blank", "noopener,noreferrer"); + } } + } catch { + popup?.close(); + telegramConnectStatus.value = "not_connected"; } finally { telegramConnectBusy.value = false; await loadTelegramConnectStatus();