From 72921b9a8fe01e9700d1e4bc4109b71f77f076a7 Mon Sep 17 00:00:00 2001 From: 3252a8 <3252a8@proton.me> Date: Fri, 22 May 2026 17:48:17 +0300 Subject: [PATCH] fix: telegram oauth in logged in email account --- frontend/src/App.svelte | 5 +++-- frontend/src/lib/webapp/stores/accountStore.js | 14 +++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index ebb8921..f83567d 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -194,7 +194,7 @@ showLogin, telegramSdk, getTg: () => tg, - telegramOAuthClientId, + telegramOAuthClientId: () => telegramOAuthClientId, currentLang: () => currentLang, normalizeLangCode, updateLocalData: (updatedLanguage) => { @@ -1443,7 +1443,8 @@ {userAgreementUrl} {userLanguage} showLogout={!telegramMiniAppContext} - linkTelegramAccount={accountStore.linkTelegramAccount} + linkTelegramAccount={() => + accountStore.linkTelegramAccount(() => telegramMiniAppInitData)} logout={accountStore.logout} {openAdminPanel} {openExternalLink} diff --git a/frontend/src/lib/webapp/stores/accountStore.js b/frontend/src/lib/webapp/stores/accountStore.js index 0345a02..421d5bb 100644 --- a/frontend/src/lib/webapp/stores/accountStore.js +++ b/frontend/src/lib/webapp/stores/accountStore.js @@ -145,6 +145,12 @@ export function createAccountStore({ clearPasswordCooldownTimer(); } + function getTelegramOAuthClientId() { + const value = + typeof telegramOAuthClientId === "function" ? telegramOAuthClientId() : telegramOAuthClientId; + return Number(value || 0); + } + function closeSetPasswordDialog() { state.update((s) => ({ ...s, @@ -318,19 +324,21 @@ export function createAccountStore({ } } - async function linkTelegramAccount(getTelegramMiniAppInitData) { + async function linkTelegramAccount(getTelegramMiniAppInitData = () => "") { const s = get(state); if (s.linkTelegramBusy) return; + const readTelegramMiniAppInitData = + typeof getTelegramMiniAppInitData === "function" ? getTelegramMiniAppInitData : () => ""; const isTelegramMiniAppAttempt = telegramSdk.hasLaunchParams(); if (isTelegramMiniAppAttempt) { await telegramSdk.ensureForAction(); } - const initData = getTelegramMiniAppInitData(); + const initData = readTelegramMiniAppInitData(); if (initData) { await linkTelegramAccountWithPayload({ init_data: initData }); return; } - if (!telegramOAuthClientId) { + if (!getTelegramOAuthClientId()) { showToast(t("wa_auth_telegram_not_configured")); return; }