فهرست منبع

Revert #960 (#1012)

* Revert "add changeset"

This reverts commit aea46eb5eac181a02b2c6a64dfaf7c0e0ec83e00.

* Revert "Allow Disconnect of MWA  (#960)"

This reverts commit d8632b44eaaa5eb3f8b0465a28cd9382898b65f1.
Jordan 1 سال پیش
والد
کامیت
3761cd8cc8
2فایلهای تغییر یافته به همراه9 افزوده شده و 13 حذف شده
  1. 0 5
      .changeset/large-seas-play.md
  2. 9 8
      packages/core/react/src/WalletProvider.tsx

+ 0 - 5
.changeset/large-seas-play.md

@@ -1,5 +0,0 @@
----
-'@solana/wallet-adapter-react': patch
----
-
-Update MWA default selection behavior

+ 9 - 8
packages/core/react/src/WalletProvider.tsx

@@ -76,14 +76,13 @@ export function WalletProvider({
         }
         return [mobileWalletAdapter, ...adaptersWithStandardAdapters];
     }, [adaptersWithStandardAdapters, mobileWalletAdapter]);
-    const [walletName, setWalletName] = useLocalStorage<WalletName | null>(localStorageKey, null);
+    const [walletName, setWalletName] = useLocalStorage<WalletName | null>(
+        localStorageKey,
+        getIsMobile(adaptersWithStandardAdapters) ? SolanaMobileWalletAdapterWalletName : null
+    );
     const adapter = useMemo(
-        () =>
-            adaptersWithMobileWalletAdapter.find((a) => a.name === walletName) ??
-            (adaptersWithMobileWalletAdapter.length === 1 && adaptersWithMobileWalletAdapter[0] === mobileWalletAdapter
-                ? mobileWalletAdapter
-                : null),
-        [adaptersWithMobileWalletAdapter, walletName, mobileWalletAdapter]
+        () => adaptersWithMobileWalletAdapter.find((a) => a.name === walletName) ?? null,
+        [adaptersWithMobileWalletAdapter, walletName]
     );
     const changeWallet = useCallback(
         (nextWalletName: WalletName<string> | null) => {
@@ -106,6 +105,8 @@ export function WalletProvider({
         if (!adapter) return;
         function handleDisconnect() {
             if (isUnloadingRef.current) return;
+            // Leave the adapter selected in the event of a disconnection.
+            if (walletName === SolanaMobileWalletAdapterWalletName && getIsMobile(adaptersWithStandardAdapters)) return;
             setWalletName(null);
         }
         adapter.on('disconnect', handleDisconnect);
@@ -149,7 +150,7 @@ export function WalletProvider({
         };
     }, [adaptersWithStandardAdapters, walletName]);
     const handleConnectError = useCallback(() => {
-        if (adapter) {
+        if (adapter && adapter.name !== SolanaMobileWalletAdapterWalletName) {
             // If any error happens while connecting, unset the adapter.
             changeWallet(null);
         }