FRE-600: Fix code review blockers

- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-25 00:08:01 -04:00
parent 65b552bb08
commit 7c684a42cc
48450 changed files with 5679671 additions and 383 deletions

View File

@@ -0,0 +1,18 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./useStandardWalletAdapters.js"), exports);
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C"}

View File

@@ -0,0 +1 @@
{ "type": "commonjs" }

View File

@@ -0,0 +1 @@
{"root":["../../src/index.ts","../../src/useStandardWalletAdapters.ts"],"version":"5.7.3"}

View File

@@ -0,0 +1,59 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useStandardWalletAdapters = useStandardWalletAdapters;
const wallet_standard_wallet_adapter_base_1 = require("@solana/wallet-standard-wallet-adapter-base");
const app_1 = require("@wallet-standard/app");
const react_1 = require("react");
function useStandardWalletAdapters(adapters) {
const warnings = useConstant(() => new Set());
const { get, on } = useConstant(() => (0, app_1.DEPRECATED_getWallets)());
const [standardAdapters, setStandardAdapters] = (0, react_1.useState)(() => wrapWalletsWithAdapters(get()));
(0, react_1.useEffect)(() => {
const listeners = [
on('register', (...wallets) => setStandardAdapters((standardAdapters) => [...standardAdapters, ...wrapWalletsWithAdapters(wallets)])),
on('unregister', (...wallets) => setStandardAdapters((standardAdapters) => standardAdapters.filter((standardAdapter) => wallets.some((wallet) => wallet === standardAdapter.wallet)))),
];
return () => listeners.forEach((off) => off());
}, [on]);
const prevStandardAdapters = usePrevious(standardAdapters);
(0, react_1.useEffect)(() => {
if (!prevStandardAdapters)
return;
const currentAdapters = new Set(standardAdapters);
const removedAdapters = new Set(prevStandardAdapters.filter((previousAdapter) => !currentAdapters.has(previousAdapter)));
removedAdapters.forEach((adapter) => adapter.destroy());
}, [prevStandardAdapters, standardAdapters]);
// eslint-disable-next-line react-hooks/exhaustive-deps
(0, react_1.useEffect)(() => () => standardAdapters.forEach((adapter) => adapter.destroy()), []);
return (0, react_1.useMemo)(() => [
...standardAdapters,
...adapters.filter(({ name }) => {
if (standardAdapters.some((standardAdapter) => standardAdapter.name === name)) {
if (!warnings.has(name)) {
warnings.add(name);
console.warn(`${name} was registered as a Standard Wallet. The Wallet Adapter for ${name} can be removed from your app.`);
}
return false;
}
return true;
}),
], [standardAdapters, adapters, warnings]);
}
function useConstant(fn) {
const ref = (0, react_1.useRef)(undefined);
if (ref.current === undefined) {
ref.current = { value: fn() };
}
return ref.current.value;
}
function usePrevious(state) {
const ref = (0, react_1.useRef)(undefined);
(0, react_1.useEffect)(() => {
ref.current = state;
});
return ref.current;
}
function wrapWalletsWithAdapters(wallets) {
return wallets.filter(wallet_standard_wallet_adapter_base_1.isWalletAdapterCompatibleWallet).map((wallet) => new wallet_standard_wallet_adapter_base_1.StandardWalletAdapter({ wallet }));
}
//# sourceMappingURL=useStandardWalletAdapters.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"useStandardWalletAdapters.js","sourceRoot":"","sources":["../../src/useStandardWalletAdapters.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,2 @@
export * from './useStandardWalletAdapters.js';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}

View File

@@ -0,0 +1 @@
{"root":["../../src/index.ts","../../src/useStandardWalletAdapters.ts"],"version":"5.7.3"}

View File

@@ -0,0 +1,56 @@
import { isWalletAdapterCompatibleWallet, StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base';
import { DEPRECATED_getWallets } from '@wallet-standard/app';
import { useEffect, useMemo, useRef, useState } from 'react';
export function useStandardWalletAdapters(adapters) {
const warnings = useConstant(() => new Set());
const { get, on } = useConstant(() => DEPRECATED_getWallets());
const [standardAdapters, setStandardAdapters] = useState(() => wrapWalletsWithAdapters(get()));
useEffect(() => {
const listeners = [
on('register', (...wallets) => setStandardAdapters((standardAdapters) => [...standardAdapters, ...wrapWalletsWithAdapters(wallets)])),
on('unregister', (...wallets) => setStandardAdapters((standardAdapters) => standardAdapters.filter((standardAdapter) => wallets.some((wallet) => wallet === standardAdapter.wallet)))),
];
return () => listeners.forEach((off) => off());
}, [on]);
const prevStandardAdapters = usePrevious(standardAdapters);
useEffect(() => {
if (!prevStandardAdapters)
return;
const currentAdapters = new Set(standardAdapters);
const removedAdapters = new Set(prevStandardAdapters.filter((previousAdapter) => !currentAdapters.has(previousAdapter)));
removedAdapters.forEach((adapter) => adapter.destroy());
}, [prevStandardAdapters, standardAdapters]);
// eslint-disable-next-line react-hooks/exhaustive-deps
useEffect(() => () => standardAdapters.forEach((adapter) => adapter.destroy()), []);
return useMemo(() => [
...standardAdapters,
...adapters.filter(({ name }) => {
if (standardAdapters.some((standardAdapter) => standardAdapter.name === name)) {
if (!warnings.has(name)) {
warnings.add(name);
console.warn(`${name} was registered as a Standard Wallet. The Wallet Adapter for ${name} can be removed from your app.`);
}
return false;
}
return true;
}),
], [standardAdapters, adapters, warnings]);
}
function useConstant(fn) {
const ref = useRef(undefined);
if (ref.current === undefined) {
ref.current = { value: fn() };
}
return ref.current.value;
}
function usePrevious(state) {
const ref = useRef(undefined);
useEffect(() => {
ref.current = state;
});
return ref.current;
}
function wrapWalletsWithAdapters(wallets) {
return wallets.filter(isWalletAdapterCompatibleWallet).map((wallet) => new StandardWalletAdapter({ wallet }));
}
//# sourceMappingURL=useStandardWalletAdapters.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"useStandardWalletAdapters.js","sourceRoot":"","sources":["../../src/useStandardWalletAdapters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7D,MAAM,UAAU,yBAAyB,CAAC,QAAmB;IACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAc,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAE/F,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,SAAS,GAAG;YACd,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAC1B,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CACxG;YACD,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAC5B,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACrC,gBAAgB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CACxC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,CAAC,CAC9D,CACJ,CACJ;SACJ,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,MAAM,oBAAoB,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAElC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAC1F,CAAC;QACF,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE7C,uDAAuD;IACvD,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpF,OAAO,OAAO,CACV,GAAG,EAAE,CAAC;QACF,GAAG,gBAAgB;QACnB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5B,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC5E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CACR,GAAG,IAAI,gEAAgE,IAAI,gCAAgC,CAC9G,CAAC;gBACN,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;KACL,EACD,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACzC,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAI,EAAW;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAe,SAAS,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,GAAG,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAI,KAAQ;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAI,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,GAAG,EAAE;QACX,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,OAAO,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAA0B;IACvD,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAClH,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './useStandardWalletAdapters.js';
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}

View File

@@ -0,0 +1,3 @@
import type { Adapter } from '@solana/wallet-adapter-base';
export declare function useStandardWalletAdapters(adapters: Adapter[]): Adapter[];
//# sourceMappingURL=useStandardWalletAdapters.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"useStandardWalletAdapters.d.ts","sourceRoot":"","sources":["../../src/useStandardWalletAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,6BAA6B,CAAC;AAMvE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAqDxE"}