@kimafinance/kima-transaction-widget 1.2.35-beta.1 → 1.2.37-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1422,6 +1422,9 @@ var selectHelpPopup = function selectHelpPopup(state) {
1422
1422
  var selectHashPopup = function selectHashPopup(state) {
1423
1423
  return state.option.hashPopup;
1424
1424
  };
1425
+ var selectPendingTxPopup = function selectPendingTxPopup(state) {
1426
+ return state.option.pendingTxPopup;
1427
+ };
1425
1428
  var selectBankPopup = function selectBankPopup(state) {
1426
1429
  return state.option.bankPopup;
1427
1430
  };
@@ -1512,6 +1515,9 @@ var selectExpireTime = function selectExpireTime(state) {
1512
1515
  var selectPendingTxs = function selectPendingTxs(state) {
1513
1516
  return state.option.pendingTxs;
1514
1517
  };
1518
+ var selectPendingTxData = function selectPendingTxData(state) {
1519
+ return state.option.pendingTxData;
1520
+ };
1515
1521
 
1516
1522
  var Loading180Ring = function Loading180Ring(_ref) {
1517
1523
  var _ref$width = _ref.width,
@@ -3249,8 +3255,7 @@ var TxButton = function TxButton(_ref) {
3249
3255
  var txCount = reactRedux.useSelector(selectPendingTxs);
3250
3256
  return React__default.createElement("button", {
3251
3257
  className: "secondary-button tx-button " + theme.colorMode,
3252
- onClick: handleClick,
3253
- "data-tooltip-id": 'popup-tooltip'
3258
+ onClick: handleClick
3254
3259
  }, txCount, React__default.createElement(Loading180Ring, {
3255
3260
  height: 16,
3256
3261
  width: 16,
@@ -8041,6 +8046,81 @@ function htlcP2WSHAddress(htlcScript, network) {
8041
8046
  return p2wsh.address;
8042
8047
  }
8043
8048
 
8049
+ var PendingTxPopup = function PendingTxPopup(handleHtlcContinue) {
8050
+ var dispatch = reactRedux.useDispatch();
8051
+ var theme = reactRedux.useSelector(selectTheme);
8052
+ var pendingTxPopup = reactRedux.useSelector(selectPendingTxPopup);
8053
+ var txData = reactRedux.useSelector(selectPendingTxData);
8054
+ return React__default.createElement("div", {
8055
+ className: "kima-modal pending-tx-popup " + theme.colorMode + " " + (pendingTxPopup ? 'open' : '')
8056
+ }, React__default.createElement("div", {
8057
+ className: 'modal-overlay',
8058
+ onClick: function onClick() {
8059
+ dispatch(setPendingTxPopup(false));
8060
+ }
8061
+ }), React__default.createElement("div", {
8062
+ className: 'modal-content-container'
8063
+ }, React__default.createElement("div", {
8064
+ className: 'kima-card-header'
8065
+ }, React__default.createElement("div", {
8066
+ className: 'topbar'
8067
+ }, React__default.createElement("div", {
8068
+ className: 'title'
8069
+ }, React__default.createElement("h3", null, "Bitcoin Transaction List")), React__default.createElement("div", {
8070
+ className: 'control-buttons'
8071
+ }, React__default.createElement("button", {
8072
+ className: 'icon-button',
8073
+ onClick: function onClick() {
8074
+ return dispatch(setPendingTxPopup(false));
8075
+ }
8076
+ }, React__default.createElement(Cross, {
8077
+ fill: theme.colorMode === 'light' ? 'black' : 'white'
8078
+ }))))), React__default.createElement("div", {
8079
+ className: 'modal-content'
8080
+ }, React__default.createElement("div", {
8081
+ className: 'scroll-area custom-scrollbar'
8082
+ }, React__default.createElement("div", {
8083
+ className: 'header-container'
8084
+ }, React__default.createElement("span", null, "Amount"), React__default.createElement("span", null, "Expire Time"), React__default.createElement("span", null, "Status"), React__default.createElement("span", null, "Hash"), React__default.createElement("span", null, "Action")), React__default.createElement("div", {
8085
+ className: 'tx-container'
8086
+ }, txData.map(function (tx, index) {
8087
+ var date = new Date(+tx.expireTime * 1000);
8088
+ var year = date.getFullYear();
8089
+ var month = date.getMonth() + 1;
8090
+ var day = date.getDate();
8091
+ var hours = date.getHours();
8092
+ var minutes = date.getMinutes();
8093
+ var seconds = date.getSeconds();
8094
+ var formattedDate = year + "-" + month.toString().padStart(2, '0') + "-" + day.toString().padStart(2, '0') + " " + hours.toString().padStart(2, '0') + ":" + minutes.toString().padStart(2, '0') + ":" + seconds.toString().padStart(2, '0');
8095
+ return React__default.createElement("div", {
8096
+ className: 'tx-item',
8097
+ key: index
8098
+ }, React__default.createElement("div", {
8099
+ className: 'label'
8100
+ }, React__default.createElement("div", {
8101
+ className: 'icon-wrapper'
8102
+ }, (+tx.amount).toFixed(8), React__default.createElement(BTC, null))), React__default.createElement("span", {
8103
+ className: 'label'
8104
+ }, "" + formattedDate), React__default.createElement("span", {
8105
+ className: 'label'
8106
+ }, tx.status), React__default.createElement("div", {
8107
+ className: 'label'
8108
+ }, React__default.createElement(ExternalLink, {
8109
+ to: "https://" + CHAIN_NAMES_TO_EXPLORER[exports.SupportNetworks.BTC] + "/tx/" + tx.hash
8110
+ }, getShortenedAddress(tx.hash))), React__default.createElement("div", {
8111
+ className: "action-button-container " + (tx.status === 'Pending' || tx.status === 'Failed' ? '' : 'disabled')
8112
+ }, React__default.createElement("div", {
8113
+ className: 'action-button'
8114
+ }, "Reclaim"), React__default.createElement("div", {
8115
+ className: 'action-button',
8116
+ onClick: function onClick() {
8117
+ handleHtlcContinue(tx.expireTime, tx.hash, tx.amount);
8118
+ dispatch(setPendingTxPopup(false));
8119
+ }
8120
+ }, "Continue")));
8121
+ }))))));
8122
+ };
8123
+
8044
8124
  var TransferWidget = function TransferWidget(_ref) {
8045
8125
  var _theme$backgroundColo;
8046
8126
  var theme = _ref.theme,
@@ -8112,6 +8192,7 @@ var TransferWidget = function TransferWidget(_ref) {
8112
8192
  var _useIsWalletReady = useIsWalletReady(),
8113
8193
  isReady = _useIsWalletReady.isReady,
8114
8194
  walletAddress = _useIsWalletReady.walletAddress;
8195
+ var pendingTxs = reactRedux.useSelector(selectPendingTxs);
8115
8196
  var _useAllowance = useAllowance({
8116
8197
  setApproving: setApproving
8117
8198
  }),
@@ -8281,6 +8362,19 @@ var TransferWidget = function TransferWidget(_ref) {
8281
8362
  return Promise.reject(e);
8282
8363
  }
8283
8364
  };
8365
+ var handleHtlcContinue = function handleHtlcContinue(expireTime, hash, amount) {
8366
+ try {
8367
+ setBTCTimestamp(expireTime);
8368
+ setBTCSigning(false);
8369
+ setBTCSigned(true);
8370
+ setBTCHash(hash);
8371
+ dispatch(setFeeDeduct(true));
8372
+ dispatch(setAmount(amount));
8373
+ return Promise.resolve();
8374
+ } catch (e) {
8375
+ return Promise.reject(e);
8376
+ }
8377
+ };
8284
8378
  var handleSubmit = function handleSubmit() {
8285
8379
  try {
8286
8380
  var _temp8 = function _temp8(_result) {
@@ -8607,7 +8701,13 @@ var TransferWidget = function TransferWidget(_ref) {
8607
8701
  return Promise.reject(e);
8608
8702
  }
8609
8703
  };
8704
+ var timerId = setInterval(function () {
8705
+ updatePendingTxs();
8706
+ }, 10000);
8610
8707
  updatePendingTxs();
8708
+ return function () {
8709
+ clearInterval(timerId);
8710
+ };
8611
8711
  }, [sourceChain, nodeProviderQuery, walletAddress]);
8612
8712
  return React__default.createElement("div", {
8613
8713
  className: "kima-card " + theme.colorMode + " font-" + theme.fontSize,
@@ -8623,9 +8723,9 @@ var TransferWidget = function TransferWidget(_ref) {
8623
8723
  className: 'title'
8624
8724
  }, React__default.createElement("h3", null, isWizard && wizardStep === 3 || !isWizard && formStep > 0 ? titleOption !== null && titleOption !== void 0 && titleOption.confirmTitle ? titleOption === null || titleOption === void 0 ? void 0 : titleOption.confirmTitle : 'Transfer Details' : titleOption !== null && titleOption !== void 0 && titleOption.initialTitle ? titleOption === null || titleOption === void 0 ? void 0 : titleOption.initialTitle : 'New Transfer')), React__default.createElement("div", {
8625
8725
  className: 'control-buttons'
8626
- }, React__default.createElement(TxButton, {
8726
+ }, pendingTxs > 0 ? React__default.createElement(TxButton, {
8627
8727
  theme: theme
8628
- }), React__default.createElement(ExternalLink, {
8728
+ }) : null, React__default.createElement(ExternalLink, {
8629
8729
  to: helpURL ? helpURL : 'https://docs.kima.finance/demo'
8630
8730
  }, React__default.createElement("div", {
8631
8731
  className: 'menu-button'
@@ -8709,14 +8809,8 @@ var TransferWidget = function TransferWidget(_ref) {
8709
8809
  background: theme.colorMode === exports.ColorModeOptions.light ? 'white' : (_theme$backgroundColo = theme.backgroundColorDark) != null ? _theme$backgroundColo : '#1b1e25'
8710
8810
  }
8711
8811
  }
8712
- }), React__default.createElement(reactTooltip.Tooltip, {
8713
- id: 'popup-tooltip',
8714
- className: "popup-tooltip " + theme.colorMode,
8715
- content: 'Click to open popup to see pending transactions',
8716
- style: {
8717
- zIndex: 10000
8718
- },
8719
- place: 'bottom'
8812
+ }), React__default.createElement(PendingTxPopup, {
8813
+ handleHtlcContinue: handleHtlcContinue
8720
8814
  }));
8721
8815
  };
8722
8816