@reef-knot/web3-react 1.3.1 → 1.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.
@@ -9,7 +9,6 @@ import { Web3ReactProvider, useWeb3React } from '@web3-react/core';
9
9
  import { ReefKnot } from '@reef-knot/core-react';
10
10
  import { useAccount } from 'wagmi';
11
11
  import * as wagmiChains from 'wagmi/chains';
12
- import 'tiny-warning';
13
12
  import { useWeb3 } from '../hooks/useWeb3.js';
14
13
  import { POLLING_INTERVAL } from '../constants/web3.js';
15
14
  import '../constants/connectors.js';
@@ -19,6 +18,7 @@ import '@web3-react/walletlink-connector';
19
18
  import '@reef-knot/ledger-connector';
20
19
  import '../helpers/ua.js';
21
20
  import ProviderConnectors from './connectors.js';
21
+ import 'tiny-warning';
22
22
 
23
23
  function getLibrary(provider) {
24
24
  var library = new Web3Provider(provider);
@@ -110,12 +110,12 @@ var ProviderWeb3 = props => {
110
110
  getLibrary: getLibrary
111
111
  }, /*#__PURE__*/React.createElement(ProviderSDK, Object.assign({
112
112
  rpc: rpc
113
- }, sdkProps), /*#__PURE__*/React.createElement(ProviderConnectors, Object.assign({}, connectorsProps), /*#__PURE__*/React.createElement(ReefKnot, {
113
+ }, sdkProps), /*#__PURE__*/React.createElement(ReefKnot, {
114
114
  rpc: rpc,
115
115
  walletconnectProjectId: walletconnectProjectId,
116
116
  chains: supportedWagmiChains,
117
117
  defaultChain: defaultWagmiChain
118
- }, children))));
118
+ }, /*#__PURE__*/React.createElement(ProviderConnectors, Object.assign({}, connectorsProps), children))));
119
119
  };
120
120
  const web3 = /*#__PURE__*/memo(ProviderWeb3);
121
121
 
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoConnect.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoConnect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,cAAc,eAAgB,sBAAsB,KAAG,IAKnE,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,sBAAsB,KAAG,IA2CtE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,IAwBvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,IAgB3C,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,IAexC,CAAC"}
1
+ {"version":3,"file":"useAutoConnect.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoConnect.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,cAAc,eAAgB,sBAAsB,SAKhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,sBAAsB,SA4DnE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,IAwBvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,IAgB3C,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,IAexC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from '../_virtual/_tslib.js';
2
- import warning from 'tiny-warning';
3
- import { useRef, useCallback, useEffect } from 'react';
2
+ import { useRef, useContext, useEffect } from 'react';
3
+ import { AcceptTermsModalContext, LS_KEY_TERMS_ACCEPTANCE } from '@reef-knot/core-react';
4
4
  import { useWeb3 } from './useWeb3.js';
5
5
  import { useConnectorStorage } from './useConnectorStorage.js';
6
6
  import { useConnectorInfo } from './useConnectorInfo.js';
@@ -24,37 +24,48 @@ var useEagerConnector = connectors => {
24
24
  var {
25
25
  isConnectedViaWagmi
26
26
  } = useConnectorInfo();
27
- var getEagerConnector = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
28
- var {
29
- gnosis,
30
- ledgerlive,
31
- injected
32
- } = connectors;
33
- // Ledger Live iframe
34
- if (ledgerlive === null || ledgerlive === void 0 ? void 0 : ledgerlive.isLedgerApp()) return ledgerlive;
35
- // Gnosis iframe
36
- var isSaveApp = yield gnosis === null || gnosis === void 0 ? void 0 : gnosis.isSafeApp();
37
- if (isSaveApp && gnosis) return gnosis;
38
- // Dapp browsers
39
- if (isDappBrowserProvider()) return injected;
40
- // Saved in LS
41
- var saved = savedConnector && connectors[savedConnector];
42
- if (saved) return saved;
43
- return null;
44
- }), [connectors, savedConnector]);
27
+ var {
28
+ gnosis,
29
+ ledgerlive,
30
+ injected
31
+ } = connectors;
32
+ var {
33
+ acceptTermsModal
34
+ } = useContext(AcceptTermsModalContext);
45
35
  useEffect(() => {
46
36
  if (isConnectedViaWagmi || tried.current || active) return;
47
37
  (() => __awaiter(void 0, void 0, void 0, function* () {
38
+ var _a, _b, _c;
48
39
  tried.current = true;
49
- var connector = yield getEagerConnector();
40
+ var isLedgerApp = ledgerlive === null || ledgerlive === void 0 ? void 0 : ledgerlive.isLedgerApp(); // Ledger Live iframe
41
+ var isSafeApp = yield gnosis === null || gnosis === void 0 ? void 0 : gnosis.isSafeApp(); // Gnosis iframe
42
+ var isDappBrowser = isDappBrowserProvider();
43
+ var shouldAutoConnectApp = isLedgerApp || isSafeApp || isDappBrowser;
44
+ var connector = (() => {
45
+ if (shouldAutoConnectApp) {
46
+ if (isLedgerApp) return ledgerlive;
47
+ if (isSafeApp && gnosis) return gnosis;
48
+ if (isDappBrowser) return injected;
49
+ }
50
+ // Saved in LS
51
+ var saved = savedConnector && connectors[savedConnector];
52
+ if (saved) return saved;
53
+ return null;
54
+ })();
50
55
  if (!connector) return;
51
- try {
52
- yield activate(connector, undefined, true);
53
- } catch (error) {
54
- warning(false, 'Connector is not activated');
56
+ var connectWallet = () => activate(connector, undefined, true);
57
+ var termsAccepted = false;
58
+ if (typeof window !== 'undefined') {
59
+ termsAccepted = ((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(LS_KEY_TERMS_ACCEPTANCE)) === 'true';
60
+ }
61
+ if (shouldAutoConnectApp && !termsAccepted) {
62
+ (_b = acceptTermsModal.setOnContinue) === null || _b === void 0 ? void 0 : _b.call(acceptTermsModal, () => connectWallet);
63
+ (_c = acceptTermsModal.setVisible) === null || _c === void 0 ? void 0 : _c.call(acceptTermsModal, true);
64
+ return;
55
65
  }
66
+ yield connectWallet();
56
67
  }))();
57
- }, [activate, getEagerConnector, active, isConnectedViaWagmi]);
68
+ }, [activate, active, isConnectedViaWagmi, ledgerlive, gnosis, savedConnector, connectors, injected, acceptTermsModal]);
58
69
  };
59
70
  var useSaveConnectorToLS = () => {
60
71
  var [, saveConnector] = useConnectorStorage();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reef-knot/web3-react",
3
- "version": "1.3.1",
3
+ "version": "1.4.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -46,7 +46,7 @@
46
46
  "@babel/preset-react": "7.18.6",
47
47
  "@babel/preset-typescript": "7.18.6",
48
48
  "@ethersproject/providers": "^5.7.2",
49
- "@reef-knot/core-react": "^1.4.3",
49
+ "@reef-knot/core-react": "^1.5.1",
50
50
  "@reef-knot/ledger-connector": "^1.0.0",
51
51
  "@testing-library/react": "^12.1.5",
52
52
  "@testing-library/react-hooks": "^7.0.2",
@@ -77,10 +77,10 @@
77
77
  },
78
78
  "peerDependencies": {
79
79
  "@ethersproject/providers": "5",
80
- "@reef-knot/core-react": "^1.4.1",
80
+ "@reef-knot/core-react": "^1.4.3",
81
81
  "@reef-knot/ledger-connector": "^1.0.0",
82
82
  "react": ">=17",
83
83
  "ua-parser-js": "^1.0.33",
84
- "wagmi": "^0.12.18"
84
+ "wagmi": "^0.12.19"
85
85
  }
86
86
  }