@particle-network/connectkit
Version:
108 lines (105 loc) • 3.19 kB
JavaScript
"use client";
import {
init_useConnectors,
useConnectors
} from "./chunk-RCAM7PR5.mjs";
import {
init_wallet,
walletConfigs
} from "./chunk-TYWUWWWK.mjs";
import {
Injected_default,
init_Injected
} from "./chunk-5TAT3MVW.mjs";
import {
__esm
} from "./chunk-Y7A564BU.mjs";
// src/hooks/useWalletsProps.tsx
import { jsx } from "react/jsx-runtime";
var useWalletsProps, useWalletsProps_default, useWalletProps;
var init_useWalletsProps = __esm({
"src/hooks/useWalletsProps.tsx"() {
"use strict";
init_Injected();
init_wallet();
init_useConnectors();
useWalletsProps = () => {
const connectors = useConnectors();
const wallets = connectors.map((connector) => {
const rawId = connector.id.replace("solana_", "");
const groupId = Object.keys(walletConfigs).find(
(id) => id.split(",").map((i) => i.trim()).indexOf(rawId) !== -1
);
const props = {
id: connector.id,
name: connector.name ?? connector.id ?? connector.type,
icon: /* @__PURE__ */ jsx("img", { src: connector.icon, alt: connector.name, width: "100%", height: "100%" }),
connector,
iconShape: "squircle",
isInstalled: connector.isInstalled?.(),
getConnector: () => {
return connector;
}
};
if (groupId) {
const wallet = walletConfigs[groupId];
return {
...props,
...wallet,
groupId
};
} else {
if (!connector.icon) {
props.icon = /* @__PURE__ */ jsx(Injected_default, {});
}
}
return props;
});
const result = wallets.filter(
(wallet, index, self) => self.findIndex((w) => w.id === wallet.id && w.connector.chainType === wallet.connector.chainType) === index
).filter((wallet, index, self) => {
if (wallet.connector.chainType === "solana") {
return true;
}
const groupId = wallet.groupId;
if (groupId && groupId.includes(",")) {
const isMipd = wallet.connector.id.includes(".");
if (isMipd) {
return true;
}
const mipdIds = groupId.split(",").map((id) => id.trim()).filter((id) => id.includes("."));
const hasMipd = self.find((w) => mipdIds.includes(w.connector.id));
return Boolean(!hasMipd);
}
return true;
}).sort((a, b) => {
if (a.isInstalled && !b.isInstalled)
return -1;
if (!a.isInstalled && b.isInstalled)
return 1;
return 0;
}).sort((a, b) => {
if (a.id === "walletConnect")
return 1;
if (b.id === "walletConnect")
return -1;
return 0;
});
return result;
};
useWalletsProps_default = useWalletsProps;
useWalletProps = (id) => {
const wallets = useWalletsProps();
const wallet = wallets.find((c) => c.id === id);
if (!wallet)
return null;
return wallet;
};
}
});
export {
useWalletsProps_default,
useWalletProps,
init_useWalletsProps
};
//# sourceMappingURL=chunk-3L3TDB2A.mjs.map