fix: translate wallet no account error
Some checks failed
Deploy Staging (terry-wallet-login) / deploy (push) Failing after 32s

This commit is contained in:
TerryM
2026-06-04 11:14:52 +08:00
parent 65dee3a37e
commit ae64f96bbe
5 changed files with 49 additions and 4 deletions

View File

@@ -26,6 +26,13 @@ const wallets: WalletKind[] = ["tokenPocket", "imToken"];
type LoginState = "idle" | "connecting";
type Translate = (key: string) => string;
function walletErrorMessage(error: unknown, t: Translate): string {
if (!(error instanceof Error)) return t("walletLoginFailed");
return t(error.message) || t("walletLoginFailed");
}
function isMobileDevice(): boolean {
if (typeof navigator === "undefined") return false;
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile/i.test(
@@ -77,7 +84,7 @@ export function WalletLoginModal() {
completeLogin(localWalletToken(address), address);
} catch (err) {
setState("idle");
setError(err instanceof Error ? err.message : t("walletLoginFailed"));
setError(walletErrorMessage(err, t));
}
};

View File

@@ -15,6 +15,13 @@ import { clearWalletToken, readWalletToken, writeWalletToken } from "./token";
type WalletStatus = "loading" | "loggedOut" | "loggedIn";
type Translate = (key: string) => string;
function walletErrorMessage(error: unknown, t: Translate): string {
if (!(error instanceof Error)) return t("walletLoginFailed");
return t(error.message) || t("walletLoginFailed");
}
const localWalletTokenPrefix = "local-wallet:";
export function localWalletToken(wallet: string): string {
@@ -106,9 +113,7 @@ export function WalletProvider({ children }: { children: ReactNode }) {
completeLogin(res.token, res.wallet);
showToast(t("walletLoginSuccess"));
} catch (error) {
const message =
error instanceof Error ? error.message : t("walletLoginFailed");
showToast(message || t("walletLoginFailed"), "error");
showToast(walletErrorMessage(error, t), "error");
throw error;
}
},