From 3e38792f19c8ffe199ff2845bf2f62cfb818d106 Mon Sep 17 00:00:00 2001 From: pavlov346346-source Date: Fri, 11 Sep 2026 10:15:18 +0300 Subject: [PATCH] ux: surface safe password edge errors --- public/core/account-security-v1774.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/public/core/account-security-v1774.js b/public/core/account-security-v1774.js index 489089e..5869f60 100644 --- a/public/core/account-security-v1774.js +++ b/public/core/account-security-v1774.js @@ -38,11 +38,22 @@ location.reload(); } + async function edgeErrorMessage(result){ + let message=String(result?.data?.error||''); + const context=result?.error?.context; + if(!message&&context&&typeof context.clone==='function'){ + try{ + const payload=await context.clone().json(); + message=String(payload?.error||payload?.message||''); + }catch(_){} + } + return message||String(result?.error?.message||'')||'Не удалось изменить пароль.'; + } + async function changePassword(currentPassword,newPassword){ const c=client();if(!c)throw new Error('Сессия пользователя недоступна.'); const result=await c.functions.invoke('caterium-change-password',{body:{current_password:currentPassword,new_password:newPassword}}); - const message=result.data?.error||result.error?.message; - if(result.error||result.data?.error)throw new Error(message||'Не удалось изменить пароль.'); + if(result.error||result.data?.error)throw new Error(await edgeErrorMessage(result)); if(result.data?.status!=='changed')throw new Error('Сервер не подтвердил смену пароля.'); return result.data; }