From: ayan4m1 Date: Thu, 15 Jun 2023 12:48:54 +0000 (-0400) Subject: wrap login call in try/catch for error handling X-Git-Url: http://these/git/%24%7BgetStaticDir%28%29%7D/js/static/%24%7B%60data:application/manifest%20json;base64%2C%24%7Bawait?a=commitdiff_plain;h=55512a2eae27141506183b2262de942eb2b42bdd;p=lemmy-ui.git wrap login call in try/catch for error handling --- diff --git a/src/shared/components/home/login.tsx b/src/shared/components/home/login.tsx index 381c13b..3ddb4bc 100644 --- a/src/shared/components/home/login.tsx +++ b/src/shared/components/home/login.tsx @@ -160,38 +160,42 @@ export class Login extends Component { if (username_or_email && password) { i.setState({ loginRes: { state: "loading" } }); - const loginRes = await HttpService.client.login({ - username_or_email, - password, - totp_2fa_token, - }); - switch (loginRes.state) { - case "failed": { - if (loginRes.msg === "missing_totp_token") { - i.setState({ showTotp: true }); - toast(i18n.t("enter_two_factor_code"), "info"); + try { + const loginRes = await HttpService.client.login({ + username_or_email, + password, + totp_2fa_token, + }); + switch (loginRes.state) { + case "failed": { + if (loginRes.msg === "missing_totp_token") { + i.setState({ showTotp: true }); + toast(i18n.t("enter_two_factor_code"), "info"); + } + + i.setState({ loginRes: { state: "empty" } }); + break; } - i.setState({ loginRes: { state: "empty" } }); - break; - } - - case "success": { - UserService.Instance.login(loginRes.data); - const site = await HttpService.client.getSite({ - auth: myAuth(), - }); + case "success": { + UserService.Instance.login(loginRes.data); + const site = await HttpService.client.getSite({ + auth: myAuth(), + }); - if (site.state === "success") { - UserService.Instance.myUserInfo = site.data.my_user; - } + if (site.state === "success") { + UserService.Instance.myUserInfo = site.data.my_user; + } - i.props.history.action === "PUSH" - ? i.props.history.back() - : i.props.history.replace("/"); + i.props.history.action === "PUSH" + ? i.props.history.back() + : i.props.history.replace("/"); - break; + break; + } } + } catch (error) { + i.setState({ loginRes: { state: "failed", msg: error.message } }); } } }