fix: clean up wallet favorites state
This commit is contained in:
@@ -21,7 +21,8 @@ type ModalState = "idle" | "tpLoading" | "tpPolling" | "rainbowSigning";
|
||||
export function WalletLoginModal() {
|
||||
const { t } = useI18n();
|
||||
const { showToast } = useToast();
|
||||
const wallet = useWallet();
|
||||
const { closeLoginModal, completeLogin, loginModalOpen, signInInjected } =
|
||||
useWallet();
|
||||
const { openConnectModal } = useConnectModal();
|
||||
const { address, isConnected } = useAccount();
|
||||
const { signMessageAsync } = useSignMessage();
|
||||
@@ -35,12 +36,12 @@ export function WalletLoginModal() {
|
||||
|
||||
const close = () => {
|
||||
if (state === "tpLoading" || state === "rainbowSigning") return;
|
||||
wallet.closeLoginModal();
|
||||
closeLoginModal();
|
||||
setError("");
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!wallet.loginModalOpen || !tpRequest) return;
|
||||
if (!loginModalOpen || !tpRequest) return;
|
||||
if (state !== "tpPolling") return;
|
||||
|
||||
let cancelled = false;
|
||||
@@ -55,7 +56,7 @@ export function WalletLoginModal() {
|
||||
signature: result.signature,
|
||||
});
|
||||
if (cancelled) return;
|
||||
wallet.completeLogin(verified.token, verified.wallet);
|
||||
completeLogin(verified.token, verified.wallet);
|
||||
showToast(t("walletLoginSuccess"));
|
||||
setState("idle");
|
||||
setTpRequest(null);
|
||||
@@ -76,7 +77,7 @@ export function WalletLoginModal() {
|
||||
cancelled = true;
|
||||
window.clearInterval(timer);
|
||||
};
|
||||
}, [state, tpRequest, t, showToast, wallet]);
|
||||
}, [completeLogin, loginModalOpen, state, tpRequest, t, showToast]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!rainbowPending || !isConnected || !address) return;
|
||||
@@ -94,7 +95,7 @@ export function WalletLoginModal() {
|
||||
message: nonce.message,
|
||||
signature,
|
||||
});
|
||||
wallet.completeLogin(verified.token, verified.wallet);
|
||||
completeLogin(verified.token, verified.wallet);
|
||||
showToast(t("walletLoginSuccess"));
|
||||
} catch (err) {
|
||||
const message =
|
||||
@@ -114,15 +115,15 @@ export function WalletLoginModal() {
|
||||
showToast,
|
||||
signMessageAsync,
|
||||
t,
|
||||
wallet,
|
||||
completeLogin,
|
||||
]);
|
||||
|
||||
if (!wallet.loginModalOpen) return null;
|
||||
if (!loginModalOpen) return null;
|
||||
|
||||
const startInjected = async () => {
|
||||
setError("");
|
||||
setState("idle");
|
||||
await wallet.signInInjected().catch(() => undefined);
|
||||
await signInInjected().catch(() => undefined);
|
||||
};
|
||||
|
||||
const startTokenPocketQr = async () => {
|
||||
|
||||
Reference in New Issue
Block a user