Skip to content

Commit

Permalink
Revert "Revert #960 (#1012)"
Browse files Browse the repository at this point in the history
This reverts commit 3761cd8.
  • Loading branch information
jordaaash committed Aug 24, 2024
1 parent 3761cd8 commit bd6cebe
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
5 changes: 5 additions & 0 deletions .changeset/large-seas-play.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solana/wallet-adapter-react': patch
---

Update MWA default selection behavior
17 changes: 8 additions & 9 deletions packages/core/react/src/WalletProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,14 @@ export function WalletProvider({
}
return [mobileWalletAdapter, ...adaptersWithStandardAdapters];
}, [adaptersWithStandardAdapters, mobileWalletAdapter]);
const [walletName, setWalletName] = useLocalStorage<WalletName | null>(
localStorageKey,
getIsMobile(adaptersWithStandardAdapters) ? SolanaMobileWalletAdapterWalletName : null
);
const [walletName, setWalletName] = useLocalStorage<WalletName | null>(localStorageKey, null);
const adapter = useMemo(
() => adaptersWithMobileWalletAdapter.find((a) => a.name === walletName) ?? null,
[adaptersWithMobileWalletAdapter, walletName]
() =>
adaptersWithMobileWalletAdapter.find((a) => a.name === walletName) ??
(adaptersWithMobileWalletAdapter.length === 1 && adaptersWithMobileWalletAdapter[0] === mobileWalletAdapter
? mobileWalletAdapter
: null),
[adaptersWithMobileWalletAdapter, walletName, mobileWalletAdapter]
);
const changeWallet = useCallback(
(nextWalletName: WalletName<string> | null) => {
Expand All @@ -105,8 +106,6 @@ 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);
Expand Down Expand Up @@ -150,7 +149,7 @@ export function WalletProvider({
};
}, [adaptersWithStandardAdapters, walletName]);
const handleConnectError = useCallback(() => {
if (adapter && adapter.name !== SolanaMobileWalletAdapterWalletName) {
if (adapter) {
// If any error happens while connecting, unset the adapter.
changeWallet(null);
}
Expand Down

0 comments on commit bd6cebe

Please sign in to comment.