( )
| 101 | }; |
| 102 | |
| 103 | const handleLogin = async ( |
| 104 | ) => { |
| 105 | const email = state?.email |
| 106 | const password = state?.password |
| 107 | |
| 108 | if (!email || !password) { |
| 109 | return; |
| 110 | } |
| 111 | localStorage.removeItem("accesstoken"); |
| 112 | try { |
| 113 | setState({ ...state, loading: true }); |
| 114 | localStorage.setItem("appLogo", appInfo.applogo); |
| 115 | const _user = await Parse.Cloud.run("loginuser", { email, password }); |
| 116 | if (!_user) { |
| 117 | setState({ ...state, loading: false }); |
| 118 | return; |
| 119 | } |
| 120 | // Get extended user data (including 2FA status) using cloud function |
| 121 | try { |
| 122 | await Parse.User.become(_user.sessionToken); |
| 123 | setLocalVar(_user); |
| 124 | await continueLoginFlow(); |
| 125 | } catch (error) { |
| 126 | console.error("Error checking 2FA status:", error); |
| 127 | showToast("danger", t("something-went-wrong-mssg")); |
| 128 | } |
| 129 | } catch (error) { |
| 130 | console.error("Error while logging in user", error); |
| 131 | if (error?.code === 1001) { |
| 132 | showToast("danger", t("action-prohibited")); |
| 133 | } else { |
| 134 | showToast("danger", t("invalid-username-password-region")); |
| 135 | } |
| 136 | } |
| 137 | }; |
| 138 | const handleLoginBtn = async (event) => { |
| 139 | event.preventDefault(); |
| 140 | if (!emailRegex.test(state.email)) { |
no test coverage detected