From ca2d0861992b50cc76223aa692def166f0a6f8bd Mon Sep 17 00:00:00 2001 From: Aleksandar Cakalic Date: Wed, 24 Dec 2025 14:01:46 +0100 Subject: [PATCH] fix: set installed prop inside `getModalWallet` by window object --- src/connectors/argent/argentMobile/index.ts | 2 +- src/helpers/mapModalWallets.ts | 22 +++++++++++++-------- src/main.ts | 1 + src/modal/Modal.svelte | 6 ++++-- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/connectors/argent/argentMobile/index.ts b/src/connectors/argent/argentMobile/index.ts index 03b224f..8c521ae 100644 --- a/src/connectors/argent/argentMobile/index.ts +++ b/src/connectors/argent/argentMobile/index.ts @@ -232,7 +232,7 @@ export class ArgentMobileBaseConnector extends Connector { url, icons, rpcUrl: providerRpcUrl, - modalWallet: getModalWallet(this, discoveryWallets), + modalWallet: getModalWallet(this, { discoveryWallets }), } if (projectId === DEFAULT_PROJECT_ID) { diff --git a/src/helpers/mapModalWallets.ts b/src/helpers/mapModalWallets.ts index fc6d2a1..5992aa1 100644 --- a/src/helpers/mapModalWallets.ts +++ b/src/helpers/mapModalWallets.ts @@ -1,7 +1,7 @@ import type { WalletProvider } from "@starknet-io/get-starknet-core" import { isString } from "lodash-es" import type { StarknetWindowObject } from "@starknet-io/types-js" -import { +import type { Connector, StarknetkitCompoundConnector, StarknetkitConnector, @@ -30,10 +30,13 @@ export function getModalWallet( | Connector | StarknetkitConnector | StarknetkitCompoundConnector, - discoveryWallets?: WalletProvider[], - _storeVersion?: StoreVersion | null, + options?: { + installedWallets?: StarknetWindowObject[] + discoveryWallets?: WalletProvider[] + storeVersion?: StoreVersion | null + }, ): ModalWallet { - let storeVersion = _storeVersion + let storeVersion = options?.storeVersion if (!storeVersion) { storeVersion = getStoreVersionFromBrowser() } @@ -44,17 +47,21 @@ export function getModalWallet( const isCompound = isCompoundConnector(connectorOrCompoundConnector) - const downloads = discoveryWallets?.find( + const downloads = options?.discoveryWallets?.find( (d) => d.id === (connector.id === "argentMobile" ? "argentX" : connector.id), )?.downloads + const installed = + connector.id === "argentMobile" || + Boolean(options?.installedWallets?.find((w) => w.id === connector.id)) + return { + installed, name: isCompound ? connectorOrCompoundConnector.name : connector.name, id: connector.id, icon: isCompound ? connectorOrCompoundConnector.icon : connector.icon, connector: connectorOrCompoundConnector, - installed: connector.id === "argentMobile", title: "title" in connector && isString(connector.title) ? connector.title @@ -105,7 +112,6 @@ export const mapModalWallets = ({ if (installed) { let icon let name - let download if (isCompound) { icon = _c.icon @@ -166,7 +172,7 @@ export const mapModalWallets = ({ return null } - return getModalWallet(_c, discoveryWallets) + return getModalWallet(_c, { discoveryWallets }) }) .filter((c): c is ModalWallet => c !== null) diff --git a/src/main.ts b/src/main.ts index 6bac091..64873c2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -245,6 +245,7 @@ export const connect = async ({ theme: modalTheme === "system" ? null : (modalTheme ?? null), modalWallets, discoveryWallets, + installedWallets, }, }) as unknown as ModalInstance // Prevents vite build errors }) diff --git a/src/modal/Modal.svelte b/src/modal/Modal.svelte index 3d99806..a992daa 100644 --- a/src/modal/Modal.svelte +++ b/src/modal/Modal.svelte @@ -1,6 +1,7 @@