@aptos-labs/wallet-adapter-react 3.3.1 → 3.4.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/README.md +1 -1
- package/dist/components/AptosPrivacyPolicy.d.ts +22 -0
- package/dist/components/AptosPrivacyPolicy.d.ts.map +1 -0
- package/dist/components/WalletItem.d.ts.map +1 -0
- package/dist/graphics/SmallAptosLogo.d.ts +3 -0
- package/dist/graphics/SmallAptosLogo.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +201 -114
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +203 -118
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/AptosPrivacyPolicy.tsx +85 -0
- package/src/{WalletItem.tsx → components/WalletItem.tsx} +1 -1
- package/src/graphics/SmallAptosLogo.tsx +14 -0
- package/src/index.tsx +2 -1
- package/dist/WalletItem.d.ts.map +0 -1
- /package/dist/{WalletItem.d.ts → components/WalletItem.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ const wallets = [new AptosLegacyStandardWallet()];
|
|
|
75
75
|
plugins={wallets}
|
|
76
76
|
autoConnect={true}
|
|
77
77
|
optInWallets={["Petra"]}
|
|
78
|
-
dappConfig={{ netwrok:
|
|
78
|
+
dappConfig={{ netwrok: Network.MAINNET }}
|
|
79
79
|
onError={(error) => {
|
|
80
80
|
console.log("error", error);
|
|
81
81
|
}}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
export declare const APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
|
|
3
|
+
export interface AptosPrivacyPolicyProps {
|
|
4
|
+
/** A class name for styling the element. */
|
|
5
|
+
className?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Whether to render as the child element instead of the default element provided.
|
|
8
|
+
* All props will be merged into the child element.
|
|
9
|
+
*/
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A headless component for rendering the Aptos Labs privacy policy disclaimer
|
|
15
|
+
* that should be placed under the Aptos Connect login options.
|
|
16
|
+
*/
|
|
17
|
+
export declare const AptosPrivacyPolicy: import("react").ForwardRefExoticComponent<AptosPrivacyPolicyProps & import("react").RefAttributes<HTMLDivElement>> & {
|
|
18
|
+
Disclaimer: import("react").ForwardRefExoticComponent<AptosPrivacyPolicyProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
19
|
+
Link: import("react").ForwardRefExoticComponent<AptosPrivacyPolicyProps & import("react").RefAttributes<HTMLAnchorElement>>;
|
|
20
|
+
PoweredBy: import("react").ForwardRefExoticComponent<Pick<AptosPrivacyPolicyProps, "className"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=AptosPrivacyPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AptosPrivacyPolicy.d.ts","sourceRoot":"","sources":["../../src/components/AptosPrivacyPolicy.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAG9C,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6DD;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAI7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletItem.d.ts","sourceRoot":"","sources":["../../src/components/WalletItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,SAAS,EAKV,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmID,kHAAkH;AAClH,eAAO,MAAM,UAAU;;;;;CAKrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmallAptosLogo.d.ts","sourceRoot":"","sources":["../../src/graphics/SmallAptosLogo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAW5D"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "@aptos-labs/wallet-adapter-core";
|
|
2
|
-
export * from "./WalletItem";
|
|
3
2
|
export * from "./WalletProvider";
|
|
3
|
+
export * from "./components/AptosPrivacyPolicy";
|
|
4
|
+
export * from "./components/WalletItem";
|
|
4
5
|
export * from "./useWallet";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
// src/index.tsx
|
|
22
22
|
var src_exports = {};
|
|
23
23
|
__export(src_exports, {
|
|
24
|
+
APTOS_PRIVACY_POLICY_URL: () => APTOS_PRIVACY_POLICY_URL,
|
|
25
|
+
AptosPrivacyPolicy: () => AptosPrivacyPolicy,
|
|
24
26
|
AptosWalletAdapterProvider: () => AptosWalletAdapterProvider,
|
|
25
27
|
WalletContext: () => WalletContext,
|
|
26
28
|
WalletItem: () => WalletItem,
|
|
@@ -29,9 +31,7 @@ __export(src_exports, {
|
|
|
29
31
|
module.exports = __toCommonJS(src_exports);
|
|
30
32
|
__reExport(src_exports, require("@aptos-labs/wallet-adapter-core"), module.exports);
|
|
31
33
|
|
|
32
|
-
// src/
|
|
33
|
-
var import_wallet_adapter_core = require("@aptos-labs/wallet-adapter-core");
|
|
34
|
-
var import_react_slot = require("@radix-ui/react-slot");
|
|
34
|
+
// src/WalletProvider.tsx
|
|
35
35
|
var import_react2 = require("react");
|
|
36
36
|
|
|
37
37
|
// src/useWallet.tsx
|
|
@@ -50,108 +50,8 @@ function useWallet() {
|
|
|
50
50
|
return context;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
// src/WalletItem.tsx
|
|
54
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
55
|
-
var WalletItemContext = (0, import_react2.createContext)(null);
|
|
56
|
-
var WalletItemRoot = (0, import_react2.forwardRef)(
|
|
57
|
-
({ wallet, onConnect, className, asChild, children }, ref) => {
|
|
58
|
-
const { connect } = useWallet();
|
|
59
|
-
const connectWallet = (0, import_react2.useCallback)(() => {
|
|
60
|
-
connect(wallet.name);
|
|
61
|
-
onConnect == null ? void 0 : onConnect();
|
|
62
|
-
}, [connect, wallet.name, onConnect]);
|
|
63
|
-
const isWalletReady = wallet.readyState === import_wallet_adapter_core.WalletReadyState.Installed || wallet.readyState === import_wallet_adapter_core.WalletReadyState.Loadable;
|
|
64
|
-
const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
|
|
65
|
-
if (!isWalletReady && (0, import_wallet_adapter_core.isRedirectable)() && !mobileSupport)
|
|
66
|
-
return null;
|
|
67
|
-
const Component = asChild ? import_react_slot.Slot : "div";
|
|
68
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletItemContext.Provider, {
|
|
69
|
-
value: { wallet, connectWallet },
|
|
70
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
71
|
-
ref,
|
|
72
|
-
className,
|
|
73
|
-
children
|
|
74
|
-
})
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
);
|
|
78
|
-
WalletItemRoot.displayName = "WalletItem";
|
|
79
|
-
var WalletItemIcon = (0, import_react2.forwardRef)(
|
|
80
|
-
({ className, asChild, children }, ref) => {
|
|
81
|
-
const context = (0, import_react2.useContext)(WalletItemContext);
|
|
82
|
-
if (!context) {
|
|
83
|
-
throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
|
|
84
|
-
}
|
|
85
|
-
const Component = asChild ? import_react_slot.Slot : "img";
|
|
86
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
87
|
-
ref,
|
|
88
|
-
src: context.wallet.icon,
|
|
89
|
-
alt: `${context.wallet.name} icon`,
|
|
90
|
-
className,
|
|
91
|
-
children
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
WalletItemIcon.displayName = "WalletItem.Icon";
|
|
96
|
-
var WalletItemName = (0, import_react2.forwardRef)(
|
|
97
|
-
({ className, asChild, children }, ref) => {
|
|
98
|
-
const context = (0, import_react2.useContext)(WalletItemContext);
|
|
99
|
-
if (!context) {
|
|
100
|
-
throw new Error("`WalletItem.Name` must be used within `WalletItem`");
|
|
101
|
-
}
|
|
102
|
-
const Component = asChild ? import_react_slot.Slot : "div";
|
|
103
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
104
|
-
ref,
|
|
105
|
-
className,
|
|
106
|
-
children: children != null ? children : context.wallet.name
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
);
|
|
110
|
-
WalletItemName.displayName = "WalletItem.Name";
|
|
111
|
-
var WalletItemConnectButton = (0, import_react2.forwardRef)(({ className, asChild, children }, ref) => {
|
|
112
|
-
const context = (0, import_react2.useContext)(WalletItemContext);
|
|
113
|
-
if (!context) {
|
|
114
|
-
throw new Error(
|
|
115
|
-
"`WalletItem.ConnectButton` must be used within `WalletItem`"
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
const Component = asChild ? import_react_slot.Slot : "button";
|
|
119
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
120
|
-
ref,
|
|
121
|
-
className,
|
|
122
|
-
onClick: context.connectWallet,
|
|
123
|
-
children: children != null ? children : "Connect"
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
|
|
127
|
-
var WalletItemInstallLink = (0, import_react2.forwardRef)(({ className, asChild, children }, ref) => {
|
|
128
|
-
const context = (0, import_react2.useContext)(WalletItemContext);
|
|
129
|
-
if (!context) {
|
|
130
|
-
throw new Error(
|
|
131
|
-
"`WalletItem.InstallLink` must be used within `WalletItem`"
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
const Component = asChild ? import_react_slot.Slot : "a";
|
|
135
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
136
|
-
ref,
|
|
137
|
-
className,
|
|
138
|
-
href: context.wallet.url,
|
|
139
|
-
target: "_blank",
|
|
140
|
-
rel: "noopener noreferrer",
|
|
141
|
-
children: children != null ? children : "Install"
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
WalletItemInstallLink.displayName = "WalletItem.InstallLink";
|
|
145
|
-
var WalletItem = Object.assign(WalletItemRoot, {
|
|
146
|
-
Icon: WalletItemIcon,
|
|
147
|
-
Name: WalletItemName,
|
|
148
|
-
ConnectButton: WalletItemConnectButton,
|
|
149
|
-
InstallLink: WalletItemInstallLink
|
|
150
|
-
});
|
|
151
|
-
|
|
152
53
|
// src/WalletProvider.tsx
|
|
153
|
-
var
|
|
154
|
-
var import_wallet_adapter_core2 = require("@aptos-labs/wallet-adapter-core");
|
|
54
|
+
var import_wallet_adapter_core = require("@aptos-labs/wallet-adapter-core");
|
|
155
55
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
156
56
|
var initialState = {
|
|
157
57
|
connected: false,
|
|
@@ -167,13 +67,13 @@ var AptosWalletAdapterProvider = ({
|
|
|
167
67
|
dappConfig,
|
|
168
68
|
onError
|
|
169
69
|
}) => {
|
|
170
|
-
const [{ connected, account, network, wallet }, setState] = (0,
|
|
171
|
-
const [isLoading, setIsLoading] = (0,
|
|
172
|
-
const walletCore = (0,
|
|
173
|
-
() => new
|
|
70
|
+
const [{ connected, account, network, wallet }, setState] = (0, import_react2.useState)(initialState);
|
|
71
|
+
const [isLoading, setIsLoading] = (0, import_react2.useState)(true);
|
|
72
|
+
const walletCore = (0, import_react2.useMemo)(
|
|
73
|
+
() => new import_wallet_adapter_core.WalletCore(plugins != null ? plugins : [], optInWallets != null ? optInWallets : [], dappConfig),
|
|
174
74
|
[]
|
|
175
75
|
);
|
|
176
|
-
const [wallets, setWallets] = (0,
|
|
76
|
+
const [wallets, setWallets] = (0, import_react2.useState)(walletCore.wallets);
|
|
177
77
|
const connect = async (walletName) => {
|
|
178
78
|
try {
|
|
179
79
|
setIsLoading(true);
|
|
@@ -249,7 +149,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
249
149
|
return Promise.reject(error);
|
|
250
150
|
}
|
|
251
151
|
};
|
|
252
|
-
(0,
|
|
152
|
+
(0, import_react2.useEffect)(() => {
|
|
253
153
|
if (autoConnect) {
|
|
254
154
|
if (localStorage.getItem("AptosWalletName") && !connected) {
|
|
255
155
|
connect(localStorage.getItem("AptosWalletName"));
|
|
@@ -258,7 +158,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
258
158
|
}
|
|
259
159
|
}
|
|
260
160
|
}, [autoConnect, wallets]);
|
|
261
|
-
(0,
|
|
161
|
+
(0, import_react2.useEffect)(() => {
|
|
262
162
|
if (connected) {
|
|
263
163
|
walletCore.onAccountChange();
|
|
264
164
|
walletCore.onNetworkChange();
|
|
@@ -288,7 +188,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
288
188
|
};
|
|
289
189
|
});
|
|
290
190
|
};
|
|
291
|
-
const handleAccountChange = (0,
|
|
191
|
+
const handleAccountChange = (0, import_react2.useCallback)(() => {
|
|
292
192
|
if (!connected)
|
|
293
193
|
return;
|
|
294
194
|
if (!walletCore.wallet)
|
|
@@ -300,7 +200,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
300
200
|
};
|
|
301
201
|
});
|
|
302
202
|
}, [connected]);
|
|
303
|
-
const handleNetworkChange = (0,
|
|
203
|
+
const handleNetworkChange = (0, import_react2.useCallback)(() => {
|
|
304
204
|
if (!connected)
|
|
305
205
|
return;
|
|
306
206
|
if (!walletCore.wallet)
|
|
@@ -335,7 +235,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
335
235
|
setWallets((wallets2) => [...wallets2, standardWallet]);
|
|
336
236
|
}
|
|
337
237
|
};
|
|
338
|
-
(0,
|
|
238
|
+
(0, import_react2.useEffect)(() => {
|
|
339
239
|
walletCore.on("connect", handleConnect);
|
|
340
240
|
walletCore.on("disconnect", handleDisconnect);
|
|
341
241
|
walletCore.on("accountChange", handleAccountChange);
|
|
@@ -371,8 +271,195 @@ var AptosWalletAdapterProvider = ({
|
|
|
371
271
|
children
|
|
372
272
|
});
|
|
373
273
|
};
|
|
274
|
+
|
|
275
|
+
// src/components/AptosPrivacyPolicy.tsx
|
|
276
|
+
var import_react_slot = require("@radix-ui/react-slot");
|
|
277
|
+
var import_react3 = require("react");
|
|
278
|
+
|
|
279
|
+
// src/graphics/SmallAptosLogo.tsx
|
|
280
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
281
|
+
function SmallAptosLogo(props) {
|
|
282
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
283
|
+
width: "12",
|
|
284
|
+
height: "12",
|
|
285
|
+
viewBox: "0 0 12 12",
|
|
286
|
+
fill: "none",
|
|
287
|
+
...props,
|
|
288
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
289
|
+
fillRule: "evenodd",
|
|
290
|
+
clipRule: "evenodd",
|
|
291
|
+
d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z",
|
|
292
|
+
fill: "currentColor"
|
|
293
|
+
})
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// src/components/AptosPrivacyPolicy.tsx
|
|
298
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
299
|
+
var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
|
|
300
|
+
var Root = (0, import_react3.forwardRef)(
|
|
301
|
+
({ className, asChild, children }, ref) => {
|
|
302
|
+
const Component = asChild ? import_react_slot.Slot : "div";
|
|
303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
304
|
+
ref,
|
|
305
|
+
className,
|
|
306
|
+
children
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
);
|
|
310
|
+
Root.displayName = "AptosPrivacyPolicy.Root";
|
|
311
|
+
var Disclaimer = (0, import_react3.forwardRef)(
|
|
312
|
+
({ className, asChild, children }, ref) => {
|
|
313
|
+
const Component = asChild ? import_react_slot.Slot : "span";
|
|
314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
315
|
+
ref,
|
|
316
|
+
className,
|
|
317
|
+
children: children != null ? children : "By continuing, you agree to Aptos Labs'"
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
);
|
|
321
|
+
Disclaimer.displayName = "AptosPrivacyPolicy.Disclaimer";
|
|
322
|
+
var Link = (0, import_react3.forwardRef)(
|
|
323
|
+
({ className, asChild, children }, ref) => {
|
|
324
|
+
const Component = asChild ? import_react_slot.Slot : "a";
|
|
325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
326
|
+
ref,
|
|
327
|
+
className,
|
|
328
|
+
href: APTOS_PRIVACY_POLICY_URL,
|
|
329
|
+
target: "_blank",
|
|
330
|
+
rel: "noopener noreferrer",
|
|
331
|
+
children: children != null ? children : "Privacy Policy"
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
);
|
|
335
|
+
Link.displayName = "AptosPrivacyPolicy.Link";
|
|
336
|
+
var PoweredBy = (0, import_react3.forwardRef)(({ className }, ref) => {
|
|
337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
338
|
+
ref,
|
|
339
|
+
className,
|
|
340
|
+
children: [
|
|
341
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
342
|
+
children: "Powered by"
|
|
343
|
+
}),
|
|
344
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SmallAptosLogo, {}),
|
|
345
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
346
|
+
children: "Aptos Labs"
|
|
347
|
+
})
|
|
348
|
+
]
|
|
349
|
+
});
|
|
350
|
+
});
|
|
351
|
+
PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy";
|
|
352
|
+
var AptosPrivacyPolicy = Object.assign(Root, {
|
|
353
|
+
Disclaimer,
|
|
354
|
+
Link,
|
|
355
|
+
PoweredBy
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
// src/components/WalletItem.tsx
|
|
359
|
+
var import_wallet_adapter_core2 = require("@aptos-labs/wallet-adapter-core");
|
|
360
|
+
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
361
|
+
var import_react4 = require("react");
|
|
362
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
363
|
+
var WalletItemContext = (0, import_react4.createContext)(null);
|
|
364
|
+
var WalletItemRoot = (0, import_react4.forwardRef)(
|
|
365
|
+
({ wallet, onConnect, className, asChild, children }, ref) => {
|
|
366
|
+
const { connect } = useWallet();
|
|
367
|
+
const connectWallet = (0, import_react4.useCallback)(() => {
|
|
368
|
+
connect(wallet.name);
|
|
369
|
+
onConnect == null ? void 0 : onConnect();
|
|
370
|
+
}, [connect, wallet.name, onConnect]);
|
|
371
|
+
const isWalletReady = wallet.readyState === import_wallet_adapter_core2.WalletReadyState.Installed || wallet.readyState === import_wallet_adapter_core2.WalletReadyState.Loadable;
|
|
372
|
+
const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
|
|
373
|
+
if (!isWalletReady && (0, import_wallet_adapter_core2.isRedirectable)() && !mobileSupport)
|
|
374
|
+
return null;
|
|
375
|
+
const Component = asChild ? import_react_slot2.Slot : "div";
|
|
376
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletItemContext.Provider, {
|
|
377
|
+
value: { wallet, connectWallet },
|
|
378
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
379
|
+
ref,
|
|
380
|
+
className,
|
|
381
|
+
children
|
|
382
|
+
})
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
);
|
|
386
|
+
WalletItemRoot.displayName = "WalletItem";
|
|
387
|
+
var WalletItemIcon = (0, import_react4.forwardRef)(
|
|
388
|
+
({ className, asChild, children }, ref) => {
|
|
389
|
+
const context = (0, import_react4.useContext)(WalletItemContext);
|
|
390
|
+
if (!context) {
|
|
391
|
+
throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
|
|
392
|
+
}
|
|
393
|
+
const Component = asChild ? import_react_slot2.Slot : "img";
|
|
394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
395
|
+
ref,
|
|
396
|
+
src: context.wallet.icon,
|
|
397
|
+
alt: `${context.wallet.name} icon`,
|
|
398
|
+
className,
|
|
399
|
+
children
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
);
|
|
403
|
+
WalletItemIcon.displayName = "WalletItem.Icon";
|
|
404
|
+
var WalletItemName = (0, import_react4.forwardRef)(
|
|
405
|
+
({ className, asChild, children }, ref) => {
|
|
406
|
+
const context = (0, import_react4.useContext)(WalletItemContext);
|
|
407
|
+
if (!context) {
|
|
408
|
+
throw new Error("`WalletItem.Name` must be used within `WalletItem`");
|
|
409
|
+
}
|
|
410
|
+
const Component = asChild ? import_react_slot2.Slot : "div";
|
|
411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
412
|
+
ref,
|
|
413
|
+
className,
|
|
414
|
+
children: children != null ? children : context.wallet.name
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
);
|
|
418
|
+
WalletItemName.displayName = "WalletItem.Name";
|
|
419
|
+
var WalletItemConnectButton = (0, import_react4.forwardRef)(({ className, asChild, children }, ref) => {
|
|
420
|
+
const context = (0, import_react4.useContext)(WalletItemContext);
|
|
421
|
+
if (!context) {
|
|
422
|
+
throw new Error(
|
|
423
|
+
"`WalletItem.ConnectButton` must be used within `WalletItem`"
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
const Component = asChild ? import_react_slot2.Slot : "button";
|
|
427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
428
|
+
ref,
|
|
429
|
+
className,
|
|
430
|
+
onClick: context.connectWallet,
|
|
431
|
+
children: children != null ? children : "Connect"
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
|
|
435
|
+
var WalletItemInstallLink = (0, import_react4.forwardRef)(({ className, asChild, children }, ref) => {
|
|
436
|
+
const context = (0, import_react4.useContext)(WalletItemContext);
|
|
437
|
+
if (!context) {
|
|
438
|
+
throw new Error(
|
|
439
|
+
"`WalletItem.InstallLink` must be used within `WalletItem`"
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
const Component = asChild ? import_react_slot2.Slot : "a";
|
|
443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
444
|
+
ref,
|
|
445
|
+
className,
|
|
446
|
+
href: context.wallet.url,
|
|
447
|
+
target: "_blank",
|
|
448
|
+
rel: "noopener noreferrer",
|
|
449
|
+
children: children != null ? children : "Install"
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
WalletItemInstallLink.displayName = "WalletItem.InstallLink";
|
|
453
|
+
var WalletItem = Object.assign(WalletItemRoot, {
|
|
454
|
+
Icon: WalletItemIcon,
|
|
455
|
+
Name: WalletItemName,
|
|
456
|
+
ConnectButton: WalletItemConnectButton,
|
|
457
|
+
InstallLink: WalletItemInstallLink
|
|
458
|
+
});
|
|
374
459
|
// Annotate the CommonJS export names for ESM import in node:
|
|
375
460
|
0 && (module.exports = {
|
|
461
|
+
APTOS_PRIVACY_POLICY_URL,
|
|
462
|
+
AptosPrivacyPolicy,
|
|
376
463
|
AptosWalletAdapterProvider,
|
|
377
464
|
WalletContext,
|
|
378
465
|
WalletItem,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx","../src/WalletItem.tsx","../src/useWallet.tsx","../src/WalletProvider.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletItem\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"./useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n"],"mappings":"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","names":["import_react","import_react","import_wallet_adapter_core","network","wallet","wallets"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWallet\";\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nexport interface AptosPrivacyPolicyProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst Root = forwardRef<HTMLDivElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children}\n </Component>\n );\n }\n);\nRoot.displayName = \"AptosPrivacyPolicy.Root\";\n\nconst Disclaimer = forwardRef<HTMLSpanElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? \"By continuing, you agree to Aptos Labs'\"}\n </Component>\n );\n }\n);\nDisclaimer.displayName = \"AptosPrivacyPolicy.Disclaimer\";\n\nconst Link = forwardRef<HTMLAnchorElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={APTOS_PRIVACY_POLICY_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Privacy Policy\"}\n </Component>\n );\n }\n);\nLink.displayName = \"AptosPrivacyPolicy.Link\";\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick<AptosPrivacyPolicyProps, \"className\">\n>(({ className }, ref) => {\n return (\n <div ref={ref} className={className}>\n <span>Powered by</span>\n <SmallAptosLogo />\n <span>Aptos Labs</span>\n </div>\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps } from \"react\";\n\nexport function SmallAptosLogo(props: SVGProps<SVGSVGElement>) {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"../useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n"],"mappings":"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","names":["import_react","network","wallet","wallets","import_react","import_wallet_adapter_core","import_react_slot","import_react"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
// src/index.tsx
|
|
2
2
|
export * from "@aptos-labs/wallet-adapter-core";
|
|
3
3
|
|
|
4
|
-
// src/
|
|
5
|
-
import {
|
|
6
|
-
WalletReadyState,
|
|
7
|
-
isRedirectable
|
|
8
|
-
} from "@aptos-labs/wallet-adapter-core";
|
|
9
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
+
// src/WalletProvider.tsx
|
|
10
5
|
import {
|
|
11
|
-
createContext as createContext2,
|
|
12
|
-
forwardRef,
|
|
13
6
|
useCallback,
|
|
14
|
-
|
|
7
|
+
useEffect,
|
|
8
|
+
useMemo,
|
|
9
|
+
useState
|
|
15
10
|
} from "react";
|
|
16
11
|
|
|
17
12
|
// src/useWallet.tsx
|
|
@@ -30,114 +25,9 @@ function useWallet() {
|
|
|
30
25
|
return context;
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
// src/WalletItem.tsx
|
|
34
|
-
import { jsx } from "react/jsx-runtime";
|
|
35
|
-
var WalletItemContext = createContext2(null);
|
|
36
|
-
var WalletItemRoot = forwardRef(
|
|
37
|
-
({ wallet, onConnect, className, asChild, children }, ref) => {
|
|
38
|
-
const { connect } = useWallet();
|
|
39
|
-
const connectWallet = useCallback(() => {
|
|
40
|
-
connect(wallet.name);
|
|
41
|
-
onConnect == null ? void 0 : onConnect();
|
|
42
|
-
}, [connect, wallet.name, onConnect]);
|
|
43
|
-
const isWalletReady = wallet.readyState === WalletReadyState.Installed || wallet.readyState === WalletReadyState.Loadable;
|
|
44
|
-
const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
|
|
45
|
-
if (!isWalletReady && isRedirectable() && !mobileSupport)
|
|
46
|
-
return null;
|
|
47
|
-
const Component = asChild ? Slot : "div";
|
|
48
|
-
return /* @__PURE__ */ jsx(WalletItemContext.Provider, {
|
|
49
|
-
value: { wallet, connectWallet },
|
|
50
|
-
children: /* @__PURE__ */ jsx(Component, {
|
|
51
|
-
ref,
|
|
52
|
-
className,
|
|
53
|
-
children
|
|
54
|
-
})
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
);
|
|
58
|
-
WalletItemRoot.displayName = "WalletItem";
|
|
59
|
-
var WalletItemIcon = forwardRef(
|
|
60
|
-
({ className, asChild, children }, ref) => {
|
|
61
|
-
const context = useContext2(WalletItemContext);
|
|
62
|
-
if (!context) {
|
|
63
|
-
throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
|
|
64
|
-
}
|
|
65
|
-
const Component = asChild ? Slot : "img";
|
|
66
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
67
|
-
ref,
|
|
68
|
-
src: context.wallet.icon,
|
|
69
|
-
alt: `${context.wallet.name} icon`,
|
|
70
|
-
className,
|
|
71
|
-
children
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
WalletItemIcon.displayName = "WalletItem.Icon";
|
|
76
|
-
var WalletItemName = forwardRef(
|
|
77
|
-
({ className, asChild, children }, ref) => {
|
|
78
|
-
const context = useContext2(WalletItemContext);
|
|
79
|
-
if (!context) {
|
|
80
|
-
throw new Error("`WalletItem.Name` must be used within `WalletItem`");
|
|
81
|
-
}
|
|
82
|
-
const Component = asChild ? Slot : "div";
|
|
83
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
84
|
-
ref,
|
|
85
|
-
className,
|
|
86
|
-
children: children != null ? children : context.wallet.name
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
WalletItemName.displayName = "WalletItem.Name";
|
|
91
|
-
var WalletItemConnectButton = forwardRef(({ className, asChild, children }, ref) => {
|
|
92
|
-
const context = useContext2(WalletItemContext);
|
|
93
|
-
if (!context) {
|
|
94
|
-
throw new Error(
|
|
95
|
-
"`WalletItem.ConnectButton` must be used within `WalletItem`"
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
const Component = asChild ? Slot : "button";
|
|
99
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
100
|
-
ref,
|
|
101
|
-
className,
|
|
102
|
-
onClick: context.connectWallet,
|
|
103
|
-
children: children != null ? children : "Connect"
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
|
|
107
|
-
var WalletItemInstallLink = forwardRef(({ className, asChild, children }, ref) => {
|
|
108
|
-
const context = useContext2(WalletItemContext);
|
|
109
|
-
if (!context) {
|
|
110
|
-
throw new Error(
|
|
111
|
-
"`WalletItem.InstallLink` must be used within `WalletItem`"
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
const Component = asChild ? Slot : "a";
|
|
115
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
116
|
-
ref,
|
|
117
|
-
className,
|
|
118
|
-
href: context.wallet.url,
|
|
119
|
-
target: "_blank",
|
|
120
|
-
rel: "noopener noreferrer",
|
|
121
|
-
children: children != null ? children : "Install"
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
WalletItemInstallLink.displayName = "WalletItem.InstallLink";
|
|
125
|
-
var WalletItem = Object.assign(WalletItemRoot, {
|
|
126
|
-
Icon: WalletItemIcon,
|
|
127
|
-
Name: WalletItemName,
|
|
128
|
-
ConnectButton: WalletItemConnectButton,
|
|
129
|
-
InstallLink: WalletItemInstallLink
|
|
130
|
-
});
|
|
131
|
-
|
|
132
28
|
// src/WalletProvider.tsx
|
|
133
|
-
import {
|
|
134
|
-
useCallback as useCallback2,
|
|
135
|
-
useEffect,
|
|
136
|
-
useMemo,
|
|
137
|
-
useState
|
|
138
|
-
} from "react";
|
|
139
29
|
import { WalletCore } from "@aptos-labs/wallet-adapter-core";
|
|
140
|
-
import { jsx
|
|
30
|
+
import { jsx } from "react/jsx-runtime";
|
|
141
31
|
var initialState = {
|
|
142
32
|
connected: false,
|
|
143
33
|
account: null,
|
|
@@ -273,7 +163,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
273
163
|
};
|
|
274
164
|
});
|
|
275
165
|
};
|
|
276
|
-
const handleAccountChange =
|
|
166
|
+
const handleAccountChange = useCallback(() => {
|
|
277
167
|
if (!connected)
|
|
278
168
|
return;
|
|
279
169
|
if (!walletCore.wallet)
|
|
@@ -285,7 +175,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
285
175
|
};
|
|
286
176
|
});
|
|
287
177
|
}, [connected]);
|
|
288
|
-
const handleNetworkChange =
|
|
178
|
+
const handleNetworkChange = useCallback(() => {
|
|
289
179
|
if (!connected)
|
|
290
180
|
return;
|
|
291
181
|
if (!walletCore.wallet)
|
|
@@ -336,7 +226,7 @@ var AptosWalletAdapterProvider = ({
|
|
|
336
226
|
walletCore.off("standardWalletsAdded", handleStandardWalletsAdded);
|
|
337
227
|
};
|
|
338
228
|
}, [wallets, connected]);
|
|
339
|
-
return /* @__PURE__ */
|
|
229
|
+
return /* @__PURE__ */ jsx(WalletContext.Provider, {
|
|
340
230
|
value: {
|
|
341
231
|
connect,
|
|
342
232
|
account,
|
|
@@ -356,7 +246,202 @@ var AptosWalletAdapterProvider = ({
|
|
|
356
246
|
children
|
|
357
247
|
});
|
|
358
248
|
};
|
|
249
|
+
|
|
250
|
+
// src/components/AptosPrivacyPolicy.tsx
|
|
251
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
252
|
+
import { forwardRef } from "react";
|
|
253
|
+
|
|
254
|
+
// src/graphics/SmallAptosLogo.tsx
|
|
255
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
256
|
+
function SmallAptosLogo(props) {
|
|
257
|
+
return /* @__PURE__ */ jsx2("svg", {
|
|
258
|
+
width: "12",
|
|
259
|
+
height: "12",
|
|
260
|
+
viewBox: "0 0 12 12",
|
|
261
|
+
fill: "none",
|
|
262
|
+
...props,
|
|
263
|
+
children: /* @__PURE__ */ jsx2("path", {
|
|
264
|
+
fillRule: "evenodd",
|
|
265
|
+
clipRule: "evenodd",
|
|
266
|
+
d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z",
|
|
267
|
+
fill: "currentColor"
|
|
268
|
+
})
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// src/components/AptosPrivacyPolicy.tsx
|
|
273
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
274
|
+
var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
|
|
275
|
+
var Root = forwardRef(
|
|
276
|
+
({ className, asChild, children }, ref) => {
|
|
277
|
+
const Component = asChild ? Slot : "div";
|
|
278
|
+
return /* @__PURE__ */ jsx3(Component, {
|
|
279
|
+
ref,
|
|
280
|
+
className,
|
|
281
|
+
children
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
);
|
|
285
|
+
Root.displayName = "AptosPrivacyPolicy.Root";
|
|
286
|
+
var Disclaimer = forwardRef(
|
|
287
|
+
({ className, asChild, children }, ref) => {
|
|
288
|
+
const Component = asChild ? Slot : "span";
|
|
289
|
+
return /* @__PURE__ */ jsx3(Component, {
|
|
290
|
+
ref,
|
|
291
|
+
className,
|
|
292
|
+
children: children != null ? children : "By continuing, you agree to Aptos Labs'"
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
);
|
|
296
|
+
Disclaimer.displayName = "AptosPrivacyPolicy.Disclaimer";
|
|
297
|
+
var Link = forwardRef(
|
|
298
|
+
({ className, asChild, children }, ref) => {
|
|
299
|
+
const Component = asChild ? Slot : "a";
|
|
300
|
+
return /* @__PURE__ */ jsx3(Component, {
|
|
301
|
+
ref,
|
|
302
|
+
className,
|
|
303
|
+
href: APTOS_PRIVACY_POLICY_URL,
|
|
304
|
+
target: "_blank",
|
|
305
|
+
rel: "noopener noreferrer",
|
|
306
|
+
children: children != null ? children : "Privacy Policy"
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
);
|
|
310
|
+
Link.displayName = "AptosPrivacyPolicy.Link";
|
|
311
|
+
var PoweredBy = forwardRef(({ className }, ref) => {
|
|
312
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
313
|
+
ref,
|
|
314
|
+
className,
|
|
315
|
+
children: [
|
|
316
|
+
/* @__PURE__ */ jsx3("span", {
|
|
317
|
+
children: "Powered by"
|
|
318
|
+
}),
|
|
319
|
+
/* @__PURE__ */ jsx3(SmallAptosLogo, {}),
|
|
320
|
+
/* @__PURE__ */ jsx3("span", {
|
|
321
|
+
children: "Aptos Labs"
|
|
322
|
+
})
|
|
323
|
+
]
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy";
|
|
327
|
+
var AptosPrivacyPolicy = Object.assign(Root, {
|
|
328
|
+
Disclaimer,
|
|
329
|
+
Link,
|
|
330
|
+
PoweredBy
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
// src/components/WalletItem.tsx
|
|
334
|
+
import {
|
|
335
|
+
WalletReadyState,
|
|
336
|
+
isRedirectable
|
|
337
|
+
} from "@aptos-labs/wallet-adapter-core";
|
|
338
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
339
|
+
import {
|
|
340
|
+
createContext as createContext2,
|
|
341
|
+
forwardRef as forwardRef2,
|
|
342
|
+
useCallback as useCallback2,
|
|
343
|
+
useContext as useContext2
|
|
344
|
+
} from "react";
|
|
345
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
346
|
+
var WalletItemContext = createContext2(null);
|
|
347
|
+
var WalletItemRoot = forwardRef2(
|
|
348
|
+
({ wallet, onConnect, className, asChild, children }, ref) => {
|
|
349
|
+
const { connect } = useWallet();
|
|
350
|
+
const connectWallet = useCallback2(() => {
|
|
351
|
+
connect(wallet.name);
|
|
352
|
+
onConnect == null ? void 0 : onConnect();
|
|
353
|
+
}, [connect, wallet.name, onConnect]);
|
|
354
|
+
const isWalletReady = wallet.readyState === WalletReadyState.Installed || wallet.readyState === WalletReadyState.Loadable;
|
|
355
|
+
const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
|
|
356
|
+
if (!isWalletReady && isRedirectable() && !mobileSupport)
|
|
357
|
+
return null;
|
|
358
|
+
const Component = asChild ? Slot2 : "div";
|
|
359
|
+
return /* @__PURE__ */ jsx4(WalletItemContext.Provider, {
|
|
360
|
+
value: { wallet, connectWallet },
|
|
361
|
+
children: /* @__PURE__ */ jsx4(Component, {
|
|
362
|
+
ref,
|
|
363
|
+
className,
|
|
364
|
+
children
|
|
365
|
+
})
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
);
|
|
369
|
+
WalletItemRoot.displayName = "WalletItem";
|
|
370
|
+
var WalletItemIcon = forwardRef2(
|
|
371
|
+
({ className, asChild, children }, ref) => {
|
|
372
|
+
const context = useContext2(WalletItemContext);
|
|
373
|
+
if (!context) {
|
|
374
|
+
throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
|
|
375
|
+
}
|
|
376
|
+
const Component = asChild ? Slot2 : "img";
|
|
377
|
+
return /* @__PURE__ */ jsx4(Component, {
|
|
378
|
+
ref,
|
|
379
|
+
src: context.wallet.icon,
|
|
380
|
+
alt: `${context.wallet.name} icon`,
|
|
381
|
+
className,
|
|
382
|
+
children
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
);
|
|
386
|
+
WalletItemIcon.displayName = "WalletItem.Icon";
|
|
387
|
+
var WalletItemName = forwardRef2(
|
|
388
|
+
({ className, asChild, children }, ref) => {
|
|
389
|
+
const context = useContext2(WalletItemContext);
|
|
390
|
+
if (!context) {
|
|
391
|
+
throw new Error("`WalletItem.Name` must be used within `WalletItem`");
|
|
392
|
+
}
|
|
393
|
+
const Component = asChild ? Slot2 : "div";
|
|
394
|
+
return /* @__PURE__ */ jsx4(Component, {
|
|
395
|
+
ref,
|
|
396
|
+
className,
|
|
397
|
+
children: children != null ? children : context.wallet.name
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
);
|
|
401
|
+
WalletItemName.displayName = "WalletItem.Name";
|
|
402
|
+
var WalletItemConnectButton = forwardRef2(({ className, asChild, children }, ref) => {
|
|
403
|
+
const context = useContext2(WalletItemContext);
|
|
404
|
+
if (!context) {
|
|
405
|
+
throw new Error(
|
|
406
|
+
"`WalletItem.ConnectButton` must be used within `WalletItem`"
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
const Component = asChild ? Slot2 : "button";
|
|
410
|
+
return /* @__PURE__ */ jsx4(Component, {
|
|
411
|
+
ref,
|
|
412
|
+
className,
|
|
413
|
+
onClick: context.connectWallet,
|
|
414
|
+
children: children != null ? children : "Connect"
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
|
|
418
|
+
var WalletItemInstallLink = forwardRef2(({ className, asChild, children }, ref) => {
|
|
419
|
+
const context = useContext2(WalletItemContext);
|
|
420
|
+
if (!context) {
|
|
421
|
+
throw new Error(
|
|
422
|
+
"`WalletItem.InstallLink` must be used within `WalletItem`"
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
const Component = asChild ? Slot2 : "a";
|
|
426
|
+
return /* @__PURE__ */ jsx4(Component, {
|
|
427
|
+
ref,
|
|
428
|
+
className,
|
|
429
|
+
href: context.wallet.url,
|
|
430
|
+
target: "_blank",
|
|
431
|
+
rel: "noopener noreferrer",
|
|
432
|
+
children: children != null ? children : "Install"
|
|
433
|
+
});
|
|
434
|
+
});
|
|
435
|
+
WalletItemInstallLink.displayName = "WalletItem.InstallLink";
|
|
436
|
+
var WalletItem = Object.assign(WalletItemRoot, {
|
|
437
|
+
Icon: WalletItemIcon,
|
|
438
|
+
Name: WalletItemName,
|
|
439
|
+
ConnectButton: WalletItemConnectButton,
|
|
440
|
+
InstallLink: WalletItemInstallLink
|
|
441
|
+
});
|
|
359
442
|
export {
|
|
443
|
+
APTOS_PRIVACY_POLICY_URL,
|
|
444
|
+
AptosPrivacyPolicy,
|
|
360
445
|
AptosWalletAdapterProvider,
|
|
361
446
|
WalletContext,
|
|
362
447
|
WalletItem,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx","../src/WalletItem.tsx","../src/useWallet.tsx","../src/WalletProvider.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletItem\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"./useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n"],"mappings":"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","names":["createContext","useContext","createContext","useContext","useCallback","jsx","network","useCallback","wallet","wallets"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWallet\";\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nexport interface AptosPrivacyPolicyProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst Root = forwardRef<HTMLDivElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children}\n </Component>\n );\n }\n);\nRoot.displayName = \"AptosPrivacyPolicy.Root\";\n\nconst Disclaimer = forwardRef<HTMLSpanElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? \"By continuing, you agree to Aptos Labs'\"}\n </Component>\n );\n }\n);\nDisclaimer.displayName = \"AptosPrivacyPolicy.Disclaimer\";\n\nconst Link = forwardRef<HTMLAnchorElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={APTOS_PRIVACY_POLICY_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Privacy Policy\"}\n </Component>\n );\n }\n);\nLink.displayName = \"AptosPrivacyPolicy.Link\";\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick<AptosPrivacyPolicyProps, \"className\">\n>(({ className }, ref) => {\n return (\n <div ref={ref} className={className}>\n <span>Powered by</span>\n <SmallAptosLogo />\n <span>Aptos Labs</span>\n </div>\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps } from \"react\";\n\nexport function SmallAptosLogo(props: SVGProps<SVGSVGElement>) {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"../useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n"],"mappings":"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","names":["network","wallet","wallets","jsx","jsx","Slot","createContext","forwardRef","useCallback","useContext","jsx","createContext","forwardRef","useCallback","Slot","useContext"]}
|
package/package.json
CHANGED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
2
|
+
import { ReactNode, forwardRef } from "react";
|
|
3
|
+
import { SmallAptosLogo } from "../graphics/SmallAptosLogo";
|
|
4
|
+
|
|
5
|
+
export const APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
|
|
6
|
+
|
|
7
|
+
export interface AptosPrivacyPolicyProps {
|
|
8
|
+
/** A class name for styling the element. */
|
|
9
|
+
className?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Whether to render as the child element instead of the default element provided.
|
|
12
|
+
* All props will be merged into the child element.
|
|
13
|
+
*/
|
|
14
|
+
asChild?: boolean;
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const Root = forwardRef<HTMLDivElement, AptosPrivacyPolicyProps>(
|
|
19
|
+
({ className, asChild, children }, ref) => {
|
|
20
|
+
const Component = asChild ? Slot : "div";
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<Component ref={ref} className={className}>
|
|
24
|
+
{children}
|
|
25
|
+
</Component>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
Root.displayName = "AptosPrivacyPolicy.Root";
|
|
30
|
+
|
|
31
|
+
const Disclaimer = forwardRef<HTMLSpanElement, AptosPrivacyPolicyProps>(
|
|
32
|
+
({ className, asChild, children }, ref) => {
|
|
33
|
+
const Component = asChild ? Slot : "span";
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Component ref={ref} className={className}>
|
|
37
|
+
{children ?? "By continuing, you agree to Aptos Labs'"}
|
|
38
|
+
</Component>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
Disclaimer.displayName = "AptosPrivacyPolicy.Disclaimer";
|
|
43
|
+
|
|
44
|
+
const Link = forwardRef<HTMLAnchorElement, AptosPrivacyPolicyProps>(
|
|
45
|
+
({ className, asChild, children }, ref) => {
|
|
46
|
+
const Component = asChild ? Slot : "a";
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<Component
|
|
50
|
+
ref={ref}
|
|
51
|
+
className={className}
|
|
52
|
+
href={APTOS_PRIVACY_POLICY_URL}
|
|
53
|
+
target="_blank"
|
|
54
|
+
rel="noopener noreferrer"
|
|
55
|
+
>
|
|
56
|
+
{children ?? "Privacy Policy"}
|
|
57
|
+
</Component>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
Link.displayName = "AptosPrivacyPolicy.Link";
|
|
62
|
+
|
|
63
|
+
const PoweredBy = forwardRef<
|
|
64
|
+
HTMLDivElement,
|
|
65
|
+
Pick<AptosPrivacyPolicyProps, "className">
|
|
66
|
+
>(({ className }, ref) => {
|
|
67
|
+
return (
|
|
68
|
+
<div ref={ref} className={className}>
|
|
69
|
+
<span>Powered by</span>
|
|
70
|
+
<SmallAptosLogo />
|
|
71
|
+
<span>Aptos Labs</span>
|
|
72
|
+
</div>
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy";
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* A headless component for rendering the Aptos Labs privacy policy disclaimer
|
|
79
|
+
* that should be placed under the Aptos Connect login options.
|
|
80
|
+
*/
|
|
81
|
+
export const AptosPrivacyPolicy = Object.assign(Root, {
|
|
82
|
+
Disclaimer,
|
|
83
|
+
Link,
|
|
84
|
+
PoweredBy,
|
|
85
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SVGProps } from "react";
|
|
2
|
+
|
|
3
|
+
export function SmallAptosLogo(props: SVGProps<SVGSVGElement>) {
|
|
4
|
+
return (
|
|
5
|
+
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" {...props}>
|
|
6
|
+
<path
|
|
7
|
+
fillRule="evenodd"
|
|
8
|
+
clipRule="evenodd"
|
|
9
|
+
d="M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</svg>
|
|
13
|
+
);
|
|
14
|
+
}
|
package/src/index.tsx
CHANGED
package/dist/WalletItem.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WalletItem.d.ts","sourceRoot":"","sources":["../src/WalletItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,SAAS,EAKV,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmID,kHAAkH;AAClH,eAAO,MAAM,UAAU;;;;;CAKrB,CAAC"}
|
|
File without changes
|