From 7e5ed9cefa91718842bf6286e9199dc919bd104a Mon Sep 17 00:00:00 2001 From: Kirill Date: Fri, 22 May 2026 23:44:48 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/ui/sections/AuthMethodsSection.tsx | 3 ++- client/src/shared/lib/get-error-message.ts | 4 ++++ server/prisma/prisma/dev.db | Bin 364544 -> 364544 bytes 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/client/src/pages/me/ui/sections/AuthMethodsSection.tsx b/client/src/pages/me/ui/sections/AuthMethodsSection.tsx index 8df4011..ca090cd 100644 --- a/client/src/pages/me/ui/sections/AuthMethodsSection.tsx +++ b/client/src/pages/me/ui/sections/AuthMethodsSection.tsx @@ -19,6 +19,7 @@ import { unlinkOAuthFx, type AuthMethod, } from '@/shared/model/auth' +import { getErrorMessage } from '@/shared/lib/get-error-message' const METHOD_LABELS: Record = { password: 'Пароль', vk: 'ВКонтакте', yandex: 'Яндекс' } @@ -95,7 +96,7 @@ export function AuthMethodsSection() { return url }, onSuccess: (url) => setVerificationUrl(url), - onError: (err) => setEmailChangeError(err?.message || 'Не удалось сменить email'), + onError: (err) => setEmailChangeError(getErrorMessage(err, 'Не удалось сменить email')), }) if (!user) return null diff --git a/client/src/shared/lib/get-error-message.ts b/client/src/shared/lib/get-error-message.ts index a9e2f5c..11f3176 100644 --- a/client/src/shared/lib/get-error-message.ts +++ b/client/src/shared/lib/get-error-message.ts @@ -1,4 +1,8 @@ export function getErrorMessage(error: unknown, fallback = 'Произошла ошибка'): string { + if (error && typeof error === 'object' && 'response' in error) { + const axiosErr = error as { response?: { data?: { error?: string } } } + if (axiosErr.response?.data?.error) return axiosErr.response.data.error + } if (error instanceof Error && error.message) return error.message return fallback } diff --git a/server/prisma/prisma/dev.db b/server/prisma/prisma/dev.db index 873e50ecbcc654766b87cbcca7b8dbc008b9a244..fcc9ce1f89de289109f295bd63f5d5f0b9a023cb 100644 GIT binary patch delta 1572 zcma)6PiWI%6mRw=ZdqNw4%CA>5f5Yjnf=le;GR z%2=bED9SOBmnA;V@yTo>rJKdVh zf3vf=lwptPX4;*AV|6oCkOagfRXsIXBs>>pzdYJq6XY^Ni06!oH6`kXe6?Aj9*(b% zRP7}769V#MoC=!EQ;5H~6_?=s$h*FlR1>ld9Ege~sifA5nh+HcGXxTpqMI7=5+{=7 zf>PuyEhXpjbcZ)*5vL+3nx)m0R3$HM!@Q4qvFSASN@`SVXt7F3wUo)8y&%DQUaf*q z2=N5EF6O4{`Aqiad&+*_^Coh8iD!8^A$WHQ^ACQ9~KeQ7hqYok6{QhVXR>WoWt0{l8={VocQa- zjM#E@| z4X-S}tVq=dBd#5zgNXzti$5-1A~lgf5j{*+Ik}-!txYKWf42r5kQQ`a5Z7_~Ppq_x zBT_^@RjrVbn(8Jk|L6(G$aB|@;V%9Or8#pXv~tn77Au-@kJdh-;BEmsgdVuoo~DCn zi+%HVtZUzVP3YP;va4xl-(<-sTe{q}Z@!|t_6^q&LPBRD_G`KqF#tF4e0%#h`bT2B zD+u@*7T}q77%?Ydt0t&9QYV>lsytOTGr4?U#~tAB0=c{DUX%PcL@)MEcwYZBKnJq3 d8Hc;>v@VhQ7Sc{K-y`hTixQpywogoE|8IWt<@Epn delta 1984 zcma)7O>Em_7>;XuiPbI+Qnw0N*J^?ZiG_Urw?UAc5Iv;`BvheEIF4iI$3KbPBreiY zE|n%B@iVEpbrn<`5Es~#a%5BQ>`*QocIaUTv;#L76@u?`yw0vGM6B;kqWArt?|q-| zd0%htUfkTh`1yjLSR5yc@wju>@LQkUUYJKIaiSD=Q9tZHy8Qy9 zt119M?ApyBu#6#ZxT+j(1bgI z+#j}UAW$T$S0fkkGNxIsDKom%LS8}c2Y?TPM%U3uL~7*a+R(}If>Uqx2X)tWJXFzQ z?7gUwVtt1yqlQ_Buhp zw`5Q0w;7g0MLl^qwGocM!bllKDty1^sIGGte@xGx1u-e$k4wmt+A^u&1PFzZ|BW8g zU*#|5r91B~e~Rtzbn&mL3*5Tx_^29&mo=qr4F`6uGhSUIZ|om_jK4E8GAOFNb|JI$ zJV{1*sXZ9ZF|O8^yPTsMh7^j&(tXpZdx^_d;y3y}l!Mw=eN|O^o~e4KUJtKwFSOrj zS*m;;9+WvbNLBzC0TJB-=e1hvY?J-JGEJNn;;&3?HAj`J@G763k``E8-lJ*1oYHrQ z_2twKAlN}Qk$75L5km=b5}lAvxYWv027FGj57l)_ToHDf{X{<{4tU1?@vEqcV}7!U z?~R~>R2{<0sNHz6Q}@jdKmPF_{OT3hXkoeAPeqVw%ezD<&NRTJKoEs}qB3)jenY`# z%K}^!wLrno$yI|cJhs6Ke3!KvN_P;5uqSu{9r@(-sg1;+j+|78^8jC>mtgxJ!{mdvSLA!o}lzeIYHgP>4Hw}t^*>vp_|hV)H` zERFc^i-*$KPGKSDSkylKx<9l`#d(UwLkB<(OItVU0@w&au1@U=WbHJRjw-C7v}{FE z)rRdyP?ysxK`6&yYA2h-EI4yyrYK8{%oGcWk%_KQK+S3^yw|Zd#Q4Z$(PU!7v1dq% zD{V9rBhyABGf~OpCn5_-0y6l){@m}xpXIsm?RG#Pp=ZAU$hYb7y)rgG%Khh5KNs_& zfs&jjS^DT?sDwW@MBxkQz8dbyA1hWKyQ;Y-_)c+{!yZu-&&A!XuomE G<$nPP9(3ja