@lifi/widget 1.2.1 → 1.2.2

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.
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
+ import { useWidgetConfig } from '@lifi/widget/providers/WidgetProvider';
11
12
  import { ChainId } from '@lifinance/sdk';
12
13
  import { useWatch } from 'react-hook-form';
13
14
  import { useTranslation } from 'react-i18next';
@@ -24,6 +25,8 @@ export const SwapButton = () => {
24
25
  const navigate = useNavigate();
25
26
  const { t } = useTranslation();
26
27
  const { getChainById } = useChains();
28
+ const config = useWidgetConfig();
29
+ const { connect: walletConnect } = useWallet();
27
30
  const { account, switchChain } = useWallet();
28
31
  const [currentRoute] = useCurrentRoute();
29
32
  const setExecutableRoute = useSetExecutableRoute();
@@ -35,7 +38,12 @@ export const SwapButton = () => {
35
38
  const isCurrentChainMatch = ((_a = getChainById(chainId || ChainId.ETH)) === null || _a === void 0 ? void 0 : _a.id) === account.chainId;
36
39
  const handleSwapButtonClick = () => __awaiter(void 0, void 0, void 0, function* () {
37
40
  if (!account.isActive) {
38
- navigate(routes.selectWallet);
41
+ if (config.disableInternalWalletManagement) {
42
+ yield walletConnect();
43
+ }
44
+ else {
45
+ navigate(routes.selectWallet);
46
+ }
39
47
  }
40
48
  else if (!isCurrentChainMatch) {
41
49
  yield switchChain(chainId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
5
5
  "sideEffects": false,
6
6
  "main": "./index.js",
@@ -26,12 +26,24 @@ const initialContext = {
26
26
  const WalletContext = createContext(initialContext);
27
27
  export const useWallet = () => useContext(WalletContext);
28
28
  export const WalletProvider = ({ children }) => {
29
+ var _a;
29
30
  const config = useWidgetConfig();
30
31
  const { connect: walletManagementConnect, disconnect: walletManagementDisconnect, signer, } = useLifiWalletManagement();
31
32
  const [account, setAccount] = useState({});
33
+ useEffect(() => {
34
+ var _a;
35
+ console.log('walletProvider: signer changed', (_a = config.externalWalletManagementSettings) === null || _a === void 0 ? void 0 : _a.signer);
36
+ const updateSigner = () => __awaiter(void 0, void 0, void 0, function* () {
37
+ var _b;
38
+ const account = yield extractAccountFromSigner((_b = config.externalWalletManagementSettings) === null || _b === void 0 ? void 0 : _b.signer);
39
+ setAccount(account);
40
+ console.log('walletProvider: signer changed account', account);
41
+ });
42
+ updateSigner();
43
+ }, [(_a = config.externalWalletManagementSettings) === null || _a === void 0 ? void 0 : _a.signer]);
32
44
  const connect = useCallback((wallet) => __awaiter(void 0, void 0, void 0, function* () {
33
45
  if (config.disableInternalWalletManagement) {
34
- const signer = yield config.walletCallbacks.connect();
46
+ const signer = yield config.externalWalletManagementSettings.connect();
35
47
  const account = yield extractAccountFromSigner(signer);
36
48
  setAccount(account);
37
49
  return;
@@ -39,50 +51,66 @@ export const WalletProvider = ({ children }) => {
39
51
  yield walletManagementConnect(wallet);
40
52
  }), [
41
53
  config.disableInternalWalletManagement,
42
- config.walletCallbacks,
54
+ config.externalWalletManagementSettings,
43
55
  walletManagementConnect,
44
56
  ]);
45
57
  const disconnect = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
46
58
  if (config.disableInternalWalletManagement) {
47
- yield config.walletCallbacks.disconnect();
59
+ yield config.externalWalletManagementSettings.disconnect();
48
60
  setAccount({});
49
61
  return;
50
62
  }
51
63
  yield walletManagementDisconnect();
52
64
  }), [
53
65
  config.disableInternalWalletManagement,
54
- config.walletCallbacks,
66
+ config.externalWalletManagementSettings,
55
67
  walletManagementDisconnect,
56
68
  ]);
57
69
  // only for injected wallets
58
70
  const switchChain = useCallback((chainId) => __awaiter(void 0, void 0, void 0, function* () {
59
71
  if (config.disableInternalWalletManagement) {
60
- const signer = yield config.walletCallbacks.switchChain(chainId);
72
+ const signer = yield config.externalWalletManagementSettings.switchChain(chainId);
61
73
  const account = yield extractAccountFromSigner(signer);
62
74
  setAccount(account);
63
75
  }
64
76
  return walletSwitchChain(chainId);
65
- }), [config.disableInternalWalletManagement, config.walletCallbacks]);
77
+ }), [
78
+ config.disableInternalWalletManagement,
79
+ config.externalWalletManagementSettings,
80
+ ]);
66
81
  const addChain = useCallback((chainId) => __awaiter(void 0, void 0, void 0, function* () {
67
82
  if (config.disableInternalWalletManagement) {
68
- return config.walletCallbacks.addChain(chainId);
83
+ return config.externalWalletManagementSettings.addChain(chainId);
69
84
  }
70
85
  return walletAddChain(chainId);
71
- }), [config.disableInternalWalletManagement, config.walletCallbacks]);
86
+ }), [
87
+ config.disableInternalWalletManagement,
88
+ config.externalWalletManagementSettings,
89
+ ]);
72
90
  const addToken = useCallback((chainId, token) => __awaiter(void 0, void 0, void 0, function* () {
73
91
  if (config.disableInternalWalletManagement) {
74
- return config.walletCallbacks.addToken(token, chainId);
92
+ return config.externalWalletManagementSettings.addToken(token, chainId);
75
93
  }
76
94
  return switchChainAndAddToken(chainId, token);
77
- }), [config.disableInternalWalletManagement, config.walletCallbacks]);
95
+ }), [
96
+ config.disableInternalWalletManagement,
97
+ config.externalWalletManagementSettings,
98
+ ]);
78
99
  const attemptEagerConnect = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
79
100
  if (config.disableInternalWalletManagement) {
80
- const signer = yield config.walletCallbacks.provideSigner();
81
- const account = yield extractAccountFromSigner(signer);
82
- console.log(account);
83
- setAccount((oldAccount) => (Object.assign({}, account)));
101
+ try {
102
+ const signer = yield config.externalWalletManagementSettings.provideSigner();
103
+ const account = yield extractAccountFromSigner(signer);
104
+ setAccount(() => (Object.assign({}, account)));
105
+ }
106
+ catch (e) {
107
+ console.warn('attempted eagerconnect', e);
108
+ }
84
109
  }
85
- }), [config.disableInternalWalletManagement, config.walletCallbacks]);
110
+ }), [
111
+ config.disableInternalWalletManagement,
112
+ config.externalWalletManagementSettings,
113
+ ]);
86
114
  // keep account information up to date
87
115
  useEffect(() => {
88
116
  const updateAccount = () => __awaiter(void 0, void 0, void 0, function* () {
package/types/widget.d.ts CHANGED
@@ -16,6 +16,7 @@ export interface WidgetWalletCallbacks {
16
16
  switchChain(reqChainId: number): Promise<Signer>;
17
17
  addToken(token: Token, chainId: number): Promise<void>;
18
18
  addChain(chainId: number): Promise<boolean>;
19
+ signer?: Signer;
19
20
  }
20
21
  interface WidgetConfigBase {
21
22
  fromAmount?: number;
@@ -41,10 +42,10 @@ declare type WidgetToTokenConfig = {
41
42
  };
42
43
  declare type WidgetWalletManagementConfig = {
43
44
  disableInternalWalletManagement: true;
44
- walletCallbacks: WidgetWalletCallbacks;
45
+ externalWalletManagementSettings: WidgetWalletCallbacks;
45
46
  } | {
46
47
  disableInternalWalletManagement?: false;
47
- walletCallbacks?: never;
48
+ externalWalletManagementSettings?: never;
48
49
  };
49
50
  export declare type WidgetConfig = WidgetConfigBase & WidgetFromTokenConfig & WidgetToTokenConfig & WidgetWalletManagementConfig;
50
51
  export {};