@ref-finance/ref-sdk 1.3.9 → 1.3.10

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.
@@ -168,6 +168,8 @@
168
168
 
169
169
  .__ref-swap-widget-submit-button {
170
170
  width: 100%;
171
+ display: flex;
172
+ align-items: center;
171
173
  justify-content: center;
172
174
  font-size: 18px;
173
175
  font-weight: 700;
@@ -176,6 +178,28 @@
176
178
  margin-top: 14px;
177
179
  cursor: pointer;
178
180
  }
181
+
182
+ .__ref-swap-widget-submit-button-loader {
183
+ width: 20px;
184
+ height: 20px;
185
+ border: 2px solid #fff;
186
+ border-bottom-color: rgb(255, 255, 255);
187
+ border-bottom-color: transparent;
188
+ border-radius: 50%;
189
+ display: inline-block;
190
+ box-sizing: border-box;
191
+ animation: rotation 1s linear infinite;
192
+ }
193
+
194
+ @keyframes rotation {
195
+ 0% {
196
+ transform: rotate(0deg);
197
+ }
198
+ 100% {
199
+ transform: rotate(360deg);
200
+ }
201
+ }
202
+
179
203
  .__ref-widget-swap-detail-view {
180
204
  justify-content: space-between;
181
205
  width: 100%;
@@ -5501,6 +5501,8 @@ var HalfAndMaxAmount = function HalfAndMaxAmount(_ref6) {
5501
5501
  }
5502
5502
  }, "Max"));
5503
5503
  };
5504
+ var DECIMAL_POINT = '.';
5505
+ var ALLOWED_KEYS = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', DECIMAL_POINT];
5504
5506
  var TokenAmount = function TokenAmount(props) {
5505
5507
  var _ref$current2;
5506
5508
  var balance = props.balance,
@@ -5521,6 +5523,28 @@ var TokenAmount = function TokenAmount(props) {
5521
5523
  var _useState5 = React.useState(false),
5522
5524
  hoverSelect = _useState5[0],
5523
5525
  setHoverSelect = _useState5[1];
5526
+ var handleKeyDown = function handleKeyDown(event) {
5527
+ if (!ALLOWED_KEYS.includes(event.key) && !event.ctrlKey) {
5528
+ event.preventDefault();
5529
+ }
5530
+ var isDecimalPoint = event.key === DECIMAL_POINT;
5531
+ if (!isDecimalPoint) return;
5532
+ // Ensure only one dot is allowed
5533
+ var inputValue = event.target.value;
5534
+ if (inputValue.includes(DECIMAL_POINT)) {
5535
+ event.preventDefault();
5536
+ }
5537
+ // prohibit only one dot
5538
+ if (inputValue.length === 0) {
5539
+ event.preventDefault();
5540
+ }
5541
+ };
5542
+ var handlePaste = function handlePaste(event) {
5543
+ var paste = event.clipboardData.getData('text');
5544
+ if (!/^[0-9.]+$/.test(paste)) {
5545
+ event.preventDefault();
5546
+ }
5547
+ };
5524
5548
  var handleChange = function handleChange(amount) {
5525
5549
  if (onChangeAmount) {
5526
5550
  onChangeAmount(amount);
@@ -5566,7 +5590,8 @@ var TokenAmount = function TokenAmount(props) {
5566
5590
  }, !token ? React__default.createElement(React__default.Fragment, null, React__default.createElement("span", {
5567
5591
  style: {
5568
5592
  whiteSpace: 'nowrap',
5569
- height: '26px'
5593
+ height: '26px',
5594
+ userSelect: 'none'
5570
5595
  },
5571
5596
  className: "__ref-swap-widget-row-flex-center"
5572
5597
  }, "Select Token")) : React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
@@ -5601,16 +5626,16 @@ var TokenAmount = function TokenAmount(props) {
5601
5626
  }, React__default.createElement("input", {
5602
5627
  ref: ref,
5603
5628
  max: !!onChangeAmount ? curMax : undefined,
5604
- min: "0",
5605
5629
  onWheel: function onWheel() {
5606
5630
  if (ref.current) {
5607
5631
  ref.current.blur();
5608
5632
  }
5609
5633
  },
5610
5634
  className: "__ref-swap-widget-input-class",
5611
- step: "any",
5612
5635
  value: amount,
5613
- type: "number",
5636
+ type: "text",
5637
+ onKeyDown: handleKeyDown,
5638
+ onPaste: handlePaste,
5614
5639
  placeholder: !onChangeAmount ? '-' : '0.0',
5615
5640
  onChange: function onChange(_ref7) {
5616
5641
  var target = _ref7.target;
@@ -5618,9 +5643,6 @@ var TokenAmount = function TokenAmount(props) {
5618
5643
  handleChange(target.value);
5619
5644
  },
5620
5645
  disabled: !onChangeAmount,
5621
- onKeyDown: function onKeyDown(e) {
5622
- return symbolsArr.includes(e.key) && e.preventDefault();
5623
- },
5624
5646
  style: {
5625
5647
  color: primary,
5626
5648
  marginBottom: '8px',
@@ -6597,6 +6619,9 @@ var SwapWidget = function SwapWidget(props) {
6597
6619
  makeSwap();
6598
6620
  };
6599
6621
  var canSubmit = tokenIn && tokenOut && canSwap && !swapError && isSignedIn && new Big(tokenInBalance || '0').gte(amountIn || '0') && slippageTolerance > 0 && slippageTolerance < 100 && !ONLY_ZEROS.test(tokenInBalance);
6622
+ var tokensLoaded = React.useMemo(function () {
6623
+ return tokens.length > 0;
6624
+ }, [tokens]);
6600
6625
  return React__default.createElement(ThemeContextProvider, {
6601
6626
  customTheme: curTheme
6602
6627
  }, React__default.createElement(TokenPriceContextProvider, null, widgetRoute === 'swap' && React__default.createElement("form", {
@@ -6638,6 +6663,7 @@ var SwapWidget = function SwapWidget(props) {
6638
6663
  price: !tokenIn ? null : tokenPriceList == null ? void 0 : (_tokenPriceList$token = tokenPriceList[tokenIn.id]) == null ? void 0 : _tokenPriceList$token.price,
6639
6664
  onChangeAmount: setAmountIn,
6640
6665
  onSelectToken: function onSelectToken() {
6666
+ if (!tokensLoaded) return;
6641
6667
  setWidgetRoute('token-selector-in');
6642
6668
  }
6643
6669
  }), React__default.createElement("div", {
@@ -6663,6 +6689,7 @@ var SwapWidget = function SwapWidget(props) {
6663
6689
  token: tokenOut,
6664
6690
  price: !tokenOut ? null : tokenPriceList == null ? void 0 : (_tokenPriceList$token2 = tokenPriceList[tokenOut.id]) == null ? void 0 : _tokenPriceList$token2.price,
6665
6691
  onSelectToken: function onSelectToken() {
6692
+ if (!tokensLoaded) return;
6666
6693
  setWidgetRoute('token-selector-out');
6667
6694
  },
6668
6695
  onForceUpdate: function onForceUpdate() {
@@ -6699,7 +6726,9 @@ var SwapWidget = function SwapWidget(props) {
6699
6726
  cursor: !canSubmit ? 'not-allowed' : 'pointer'
6700
6727
  },
6701
6728
  disabled: !canSubmit
6702
- }, 'Swap') : React__default.createElement("button", {
6729
+ }, tokensLoaded ? 'Swap' : React__default.createElement("div", {
6730
+ className: "__ref-swap-widget-submit-button-loader"
6731
+ })) : React__default.createElement("button", {
6703
6732
  type: "button",
6704
6733
  className: "__ref-swap-widget-submit-button __ref-swap-widget-button",
6705
6734
  onClick: onConnect,