@aptos-labs/wallet-adapter-ant-design 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css ADDED
@@ -0,0 +1,36 @@
1
+ /* src/styles.css */
2
+ .ant-menu {
3
+ border: none !important;
4
+ }
5
+ .ant-menu-item {
6
+ background-color: rgba(0, 0, 0, 0.1);
7
+ padding: 10px;
8
+ height: auto !important;
9
+ }
10
+ .ant-menu-item-selected {
11
+ background-color: rgba(0, 0, 0, 0.06) !important;
12
+ color: black !important;
13
+ }
14
+ .wallet-menu-wrapper {
15
+ display: flex;
16
+ justify-content: space-between;
17
+ font-size: 20px;
18
+ }
19
+ .wallet-name-wrapper {
20
+ display: flex;
21
+ align-items: center;
22
+ }
23
+ .wallet-connect-button {
24
+ align-self: center;
25
+ background-color: #ffa447;
26
+ }
27
+ .wallet-connect-install {
28
+ align-self: center;
29
+ color: #ffa447;
30
+ padding-right: 15px;
31
+ }
32
+ .wallet-button {
33
+ padding: 10px 20px;
34
+ height: auto;
35
+ font-size: 16px;
36
+ }
@@ -0,0 +1,3 @@
1
+ declare function WalletSelector(): JSX.Element;
2
+
3
+ export { WalletSelector };
package/dist/index.js ADDED
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.tsx
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ WalletSelector: () => WalletSelector
24
+ });
25
+ module.exports = __toCommonJS(src_exports);
26
+
27
+ // src/WalletSelector.tsx
28
+ var import_react = require("react");
29
+ var import_antd = require("antd");
30
+ var import_wallet_adapter_react = require("@aptos-labs/wallet-adapter-react");
31
+
32
+ // src/utils.ts
33
+ var truncateAddress = (address) => {
34
+ if (!address)
35
+ return;
36
+ return `${address.slice(0, 6)}...${address.slice(-5)}`;
37
+ };
38
+
39
+ // src/WalletSelector.tsx
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ function WalletSelector() {
42
+ const [walletSelectorModalOpen, setWalletSelectorModalOpen] = (0, import_react.useState)(false);
43
+ const { connect, disconnect, account, wallets, connected } = (0, import_wallet_adapter_react.useWallet)();
44
+ const onWalletButtonClick = () => {
45
+ if (connected) {
46
+ disconnect();
47
+ } else {
48
+ setWalletSelectorModalOpen(true);
49
+ }
50
+ };
51
+ const onWalletSelected = (wallet) => {
52
+ connect(wallet);
53
+ setWalletSelectorModalOpen(false);
54
+ };
55
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
56
+ children: [
57
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, {
58
+ className: "wallet-button",
59
+ style: { backgroundColor: "#3F67FF", color: "white" },
60
+ onClick: () => onWalletButtonClick(),
61
+ children: connected ? truncateAddress(account == null ? void 0 : account.address) : "Connect Wallet"
62
+ }),
63
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Modal, {
64
+ title: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
65
+ style: { textAlign: "center", fontSize: "1.5rem" },
66
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
67
+ children: "Connect Wallet"
68
+ })
69
+ }),
70
+ centered: true,
71
+ open: walletSelectorModalOpen,
72
+ onCancel: () => setWalletSelectorModalOpen(false),
73
+ footer: [],
74
+ closable: false,
75
+ children: !connected && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Menu, {
76
+ children: [
77
+ wallets.map((wallet) => {
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Menu.Item, {
79
+ onClick: wallet.readyState === import_wallet_adapter_react.WalletReadyState.Installed ? () => onWalletSelected(wallet.name) : () => window.open(wallet.url),
80
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
81
+ className: "wallet-menu-wrapper",
82
+ children: [
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
84
+ className: "wallet-name-wrapper",
85
+ children: [
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
87
+ src: wallet.icon,
88
+ width: 25,
89
+ style: { marginRight: 10 }
90
+ }),
91
+ wallet.name
92
+ ]
93
+ }),
94
+ wallet.readyState === import_wallet_adapter_react.WalletReadyState.Installed ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, {
95
+ className: "wallet-connect-button",
96
+ children: "Connect"
97
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
98
+ className: "wallet-connect-install",
99
+ children: "Install"
100
+ })
101
+ ]
102
+ })
103
+ }, wallet.name);
104
+ }),
105
+ ";"
106
+ ]
107
+ })
108
+ })
109
+ ]
110
+ });
111
+ }
112
+ // Annotate the CommonJS export names for ESM import in node:
113
+ 0 && (module.exports = {
114
+ WalletSelector
115
+ });
package/dist/index.mjs ADDED
@@ -0,0 +1,91 @@
1
+ // src/WalletSelector.tsx
2
+ import { useState } from "react";
3
+ import { Button, Menu, Modal } from "antd";
4
+ import {
5
+ useWallet,
6
+ WalletReadyState
7
+ } from "@aptos-labs/wallet-adapter-react";
8
+
9
+ // src/utils.ts
10
+ var truncateAddress = (address) => {
11
+ if (!address)
12
+ return;
13
+ return `${address.slice(0, 6)}...${address.slice(-5)}`;
14
+ };
15
+
16
+ // src/WalletSelector.tsx
17
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
18
+ function WalletSelector() {
19
+ const [walletSelectorModalOpen, setWalletSelectorModalOpen] = useState(false);
20
+ const { connect, disconnect, account, wallets, connected } = useWallet();
21
+ const onWalletButtonClick = () => {
22
+ if (connected) {
23
+ disconnect();
24
+ } else {
25
+ setWalletSelectorModalOpen(true);
26
+ }
27
+ };
28
+ const onWalletSelected = (wallet) => {
29
+ connect(wallet);
30
+ setWalletSelectorModalOpen(false);
31
+ };
32
+ return /* @__PURE__ */ jsxs(Fragment, {
33
+ children: [
34
+ /* @__PURE__ */ jsx(Button, {
35
+ className: "wallet-button",
36
+ style: { backgroundColor: "#3F67FF", color: "white" },
37
+ onClick: () => onWalletButtonClick(),
38
+ children: connected ? truncateAddress(account == null ? void 0 : account.address) : "Connect Wallet"
39
+ }),
40
+ /* @__PURE__ */ jsx(Modal, {
41
+ title: /* @__PURE__ */ jsx("div", {
42
+ style: { textAlign: "center", fontSize: "1.5rem" },
43
+ children: /* @__PURE__ */ jsx("span", {
44
+ children: "Connect Wallet"
45
+ })
46
+ }),
47
+ centered: true,
48
+ open: walletSelectorModalOpen,
49
+ onCancel: () => setWalletSelectorModalOpen(false),
50
+ footer: [],
51
+ closable: false,
52
+ children: !connected && /* @__PURE__ */ jsxs(Menu, {
53
+ children: [
54
+ wallets.map((wallet) => {
55
+ return /* @__PURE__ */ jsx(Menu.Item, {
56
+ onClick: wallet.readyState === WalletReadyState.Installed ? () => onWalletSelected(wallet.name) : () => window.open(wallet.url),
57
+ children: /* @__PURE__ */ jsxs("div", {
58
+ className: "wallet-menu-wrapper",
59
+ children: [
60
+ /* @__PURE__ */ jsxs("div", {
61
+ className: "wallet-name-wrapper",
62
+ children: [
63
+ /* @__PURE__ */ jsx("img", {
64
+ src: wallet.icon,
65
+ width: 25,
66
+ style: { marginRight: 10 }
67
+ }),
68
+ wallet.name
69
+ ]
70
+ }),
71
+ wallet.readyState === WalletReadyState.Installed ? /* @__PURE__ */ jsx(Button, {
72
+ className: "wallet-connect-button",
73
+ children: "Connect"
74
+ }) : /* @__PURE__ */ jsx("span", {
75
+ className: "wallet-connect-install",
76
+ children: "Install"
77
+ })
78
+ ]
79
+ })
80
+ }, wallet.name);
81
+ }),
82
+ ";"
83
+ ]
84
+ })
85
+ })
86
+ ]
87
+ });
88
+ }
89
+ export {
90
+ WalletSelector
91
+ };
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@aptos-labs/wallet-adapter-ant-design",
3
+ "version": "0.0.1",
4
+ "description": "Aptos Wallet Adapter ant-design",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "license": "Apache-2.0",
9
+ "exports": {
10
+ ".": {
11
+ "require": "./dist/index.js",
12
+ "import": "./dist/index.mjs",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./dist/index.css": {
16
+ "import": "./dist/index.css",
17
+ "require": "./dist/index.css"
18
+ }
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git"
23
+ },
24
+ "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter",
25
+ "bugs": {
26
+ "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues"
27
+ },
28
+ "author": "aptoslabs.com",
29
+ "keywords": [
30
+ "Aptos",
31
+ "Aptos Labs",
32
+ "Wallet",
33
+ "Wallet Adapter",
34
+ "Wallet Adapter Provider",
35
+ "React"
36
+ ],
37
+ "scripts": {
38
+ "build": "tsup src/index.tsx --format esm,cjs --dts --external react",
39
+ "dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react",
40
+ "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
41
+ "lint": "TIMING=1 eslint \"src/**/*.ts*\""
42
+ },
43
+ "devDependencies": {
44
+ "@aptos-labs/wallet-adapter-tsconfig": "workspace:*",
45
+ "@types/react": "^18.0.17",
46
+ "@types/react-dom": "^18.0.6",
47
+ "eslint": "^8.15.0",
48
+ "tsup": "^5.10.1",
49
+ "typescript": "^4.5.3"
50
+ },
51
+ "dependencies": {
52
+ "@aptos-labs/wallet-adapter-react": "*",
53
+ "antd": "^5.1.2",
54
+ "aptos": "^1.3.17",
55
+ "react": "^18",
56
+ "react-dom": "^18"
57
+ }
58
+ }
@@ -0,0 +1,85 @@
1
+ import React, { useState } from "react";
2
+ import { Button, Menu, Modal } from "antd";
3
+ import {
4
+ useWallet,
5
+ WalletName,
6
+ WalletReadyState,
7
+ } from "@aptos-labs/wallet-adapter-react";
8
+ import "./styles.css";
9
+ import { truncateAddress } from "./utils";
10
+
11
+ export function WalletSelector() {
12
+ const [walletSelectorModalOpen, setWalletSelectorModalOpen] = useState(false);
13
+ const { connect, disconnect, account, wallets, connected } = useWallet();
14
+
15
+ const onWalletButtonClick = () => {
16
+ if (connected) {
17
+ disconnect();
18
+ } else {
19
+ setWalletSelectorModalOpen(true);
20
+ }
21
+ };
22
+
23
+ const onWalletSelected = (wallet: WalletName) => {
24
+ connect(wallet);
25
+ setWalletSelectorModalOpen(false);
26
+ };
27
+
28
+ return (
29
+ <>
30
+ <Button
31
+ className="wallet-button"
32
+ style={{ backgroundColor: "#3F67FF", color: "white" }}
33
+ onClick={() => onWalletButtonClick()}
34
+ >
35
+ {connected ? truncateAddress(account?.address) : "Connect Wallet"}
36
+ </Button>
37
+ <Modal
38
+ title={
39
+ <div style={{ textAlign: "center", fontSize: "1.5rem" }}>
40
+ <span>Connect Wallet</span>
41
+ </div>
42
+ }
43
+ centered
44
+ open={walletSelectorModalOpen}
45
+ onCancel={() => setWalletSelectorModalOpen(false)}
46
+ footer={[]}
47
+ closable={false}
48
+ >
49
+ {!connected && (
50
+ <Menu>
51
+ {wallets.map((wallet) => {
52
+ return (
53
+ <Menu.Item
54
+ key={wallet.name}
55
+ onClick={
56
+ wallet.readyState === WalletReadyState.Installed
57
+ ? () => onWalletSelected(wallet.name)
58
+ : () => window.open(wallet.url)
59
+ }
60
+ >
61
+ <div className="wallet-menu-wrapper">
62
+ <div className="wallet-name-wrapper">
63
+ <img
64
+ src={wallet.icon}
65
+ width={25}
66
+ style={{ marginRight: 10 }}
67
+ />
68
+ {wallet.name}
69
+ </div>
70
+ {wallet.readyState === WalletReadyState.Installed ? (
71
+ <Button className="wallet-connect-button">Connect</Button>
72
+ ) : (
73
+ <span className="wallet-connect-install">Install</span>
74
+ )}
75
+ </div>
76
+ </Menu.Item>
77
+ );
78
+ })}
79
+ ;
80
+ </Menu>
81
+ )}
82
+ </Modal>
83
+ </>
84
+ );
85
+ }
package/src/index.tsx ADDED
@@ -0,0 +1 @@
1
+ export * from "./WalletSelector";
package/src/styles.css ADDED
@@ -0,0 +1,42 @@
1
+ .ant-menu {
2
+ border: none !important;
3
+ }
4
+
5
+ .ant-menu-item {
6
+ background-color: rgba(0, 0, 0, 0.1);
7
+ padding: 10px;
8
+ height: auto !important;
9
+ }
10
+
11
+ .ant-menu-item-selected {
12
+ background-color: rgba(0, 0, 0, 0.06) !important;
13
+ color: black !important;
14
+ }
15
+
16
+ .wallet-menu-wrapper {
17
+ display: flex;
18
+ justify-content: space-between;
19
+ font-size: 20px;
20
+ }
21
+
22
+ .wallet-name-wrapper {
23
+ display: flex;
24
+ align-items: center;
25
+ }
26
+
27
+ .wallet-connect-button {
28
+ align-self: center;
29
+ background-color: #ffa447;
30
+ }
31
+
32
+ .wallet-connect-install {
33
+ align-self: center;
34
+ color: #ffa447;
35
+ padding-right: 15px;
36
+ }
37
+
38
+ .wallet-button {
39
+ padding: 10px 20px;
40
+ height: auto;
41
+ font-size: 16px;
42
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,4 @@
1
+ export const truncateAddress = (address: string | undefined) => {
2
+ if (!address) return;
3
+ return `${address.slice(0, 6)}...${address.slice(-5)}`;
4
+ };