@kimafinance/kima-transaction-widget 1.2.29-beta.1 → 1.2.31-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.
@@ -1,7 +1,5 @@
1
1
  import React from 'react';
2
- import { PendingTxData } from '../../utils/constants';
3
- declare const PendingTxPopup: ({ txData, handleHtlcContinue }: {
4
- txData: Array<PendingTxData>;
2
+ declare const PendingTxPopup: ({ handleHtlcContinue }: {
5
3
  handleHtlcContinue: (expireTime: any, hash: any, amount: any) => {};
6
4
  }) => React.JSX.Element;
7
5
  export default PendingTxPopup;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ThemeOptions } from '../../interface';
3
- declare const TxButton: ({ theme, txCount }: {
3
+ declare const TxButton: ({ theme }: {
4
4
  theme: ThemeOptions;
5
- txCount: number;
6
5
  }) => React.JSX.Element;
7
6
  export default TxButton;
package/dist/index.js CHANGED
@@ -1420,6 +1420,9 @@ var selectHelpPopup = function selectHelpPopup(state) {
1420
1420
  var selectHashPopup = function selectHashPopup(state) {
1421
1421
  return state.option.hashPopup;
1422
1422
  };
1423
+ var selectPendingTxPopup = function selectPendingTxPopup(state) {
1424
+ return state.option.pendingTxPopup;
1425
+ };
1423
1426
  var selectBankPopup = function selectBankPopup(state) {
1424
1427
  return state.option.bankPopup;
1425
1428
  };
@@ -1510,6 +1513,9 @@ var selectExpireTime = function selectExpireTime(state) {
1510
1513
  var selectPendingTxs = function selectPendingTxs(state) {
1511
1514
  return state.option.pendingTxs;
1512
1515
  };
1516
+ var selectPendingTxData = function selectPendingTxData(state) {
1517
+ return state.option.pendingTxData;
1518
+ };
1513
1519
 
1514
1520
  var Loading180Ring = function Loading180Ring(_ref) {
1515
1521
  var _ref$width = _ref.width,
@@ -2194,7 +2200,7 @@ function useIsWalletReady() {
2194
2200
  if (bitcoinAddress) {
2195
2201
  return createWalletStatus(true, undefined, connectBitcoinWallet, bitcoinAddress);
2196
2202
  }
2197
- return createWalletStatus(false, 'Xverse wallet connection error', connectBitcoinWallet, '');
2203
+ return createWalletStatus(false, 'Xverse wallet not connected', connectBitcoinWallet, '');
2198
2204
  } else if (isEVMChain(correctChain) && hasEthInfo && evmAddress) {
2199
2205
  if (hasCorrectEvmNetwork) {
2200
2206
  return createWalletStatus(true, undefined, connectBitcoinWallet, evmAddress);
@@ -3239,12 +3245,12 @@ var BankInput = function BankInput() {
3239
3245
  };
3240
3246
 
3241
3247
  var TxButton = function TxButton(_ref) {
3242
- var theme = _ref.theme,
3243
- txCount = _ref.txCount;
3248
+ var theme = _ref.theme;
3244
3249
  var dispatch = reactRedux.useDispatch();
3245
3250
  var handleClick = function handleClick() {
3246
3251
  dispatch(setPendingTxPopup(true));
3247
3252
  };
3253
+ var txCount = reactRedux.useSelector(selectPendingTxs);
3248
3254
  return React__default.createElement("button", {
3249
3255
  className: "secondary-button tx-button " + theme.colorMode,
3250
3256
  onClick: handleClick,
@@ -8039,6 +8045,82 @@ function htlcP2WSHAddress(htlcScript, network) {
8039
8045
  return p2wsh.address;
8040
8046
  }
8041
8047
 
8048
+ var PendingTxPopup = function PendingTxPopup(_ref) {
8049
+ var handleHtlcContinue = _ref.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
+
8042
8124
  var TransferWidget = function TransferWidget(_ref) {
8043
8125
  var _theme$backgroundColo;
8044
8126
  var theme = _ref.theme,
@@ -8280,6 +8362,19 @@ var TransferWidget = function TransferWidget(_ref) {
8280
8362
  return Promise.reject(e);
8281
8363
  }
8282
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
+ };
8283
8378
  var handleSubmit = function handleSubmit() {
8284
8379
  try {
8285
8380
  var _temp8 = function _temp8(_result) {
@@ -8582,8 +8677,7 @@ var TransferWidget = function TransferWidget(_ref) {
8582
8677
  }, 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", {
8583
8678
  className: 'control-buttons'
8584
8679
  }, pendingTxs > 0 ? React__default.createElement(TxButton, {
8585
- theme: theme,
8586
- txCount: pendingTxs
8680
+ theme: theme
8587
8681
  }) : null, React__default.createElement(ExternalLink, {
8588
8682
  to: helpURL ? helpURL : 'https://docs.kima.finance/demo'
8589
8683
  }, React__default.createElement("div", {
@@ -8668,6 +8762,8 @@ var TransferWidget = function TransferWidget(_ref) {
8668
8762
  background: theme.colorMode === exports.ColorModeOptions.light ? 'white' : (_theme$backgroundColo = theme.backgroundColorDark) != null ? _theme$backgroundColo : '#1b1e25'
8669
8763
  }
8670
8764
  }
8765
+ }), React__default.createElement(PendingTxPopup, {
8766
+ handleHtlcContinue: handleHtlcContinue
8671
8767
  }), React__default.createElement(reactTooltip.Tooltip, {
8672
8768
  id: 'popup-tooltip',
8673
8769
  className: "popup-tooltip " + theme.colorMode,