@orderly.network/hooks 0.0.28 → 0.0.29

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.mjs CHANGED
@@ -435,7 +435,6 @@ function useLocalStorage(key, initialValue) {
435
435
  },
436
436
  [storedValue]
437
437
  );
438
- console.log("storedValue", storedValue);
439
438
  useEffect(() => {
440
439
  setStoredValue(readValue());
441
440
  }, []);
@@ -672,6 +671,7 @@ var reduceOrderbook = (depth, level, data) => {
672
671
  var mergeItems = (data, update) => {
673
672
  if (data.length === 0)
674
673
  return update;
674
+ data = data.filter(([price]) => !isNaN(price));
675
675
  while (update.length > 0) {
676
676
  const item = update.shift();
677
677
  if (item) {
@@ -724,6 +724,7 @@ var useOrderbookStream = (symbol, initial = { asks: [], bids: [] }, options) =>
724
724
  ws.onceSubscribe(
725
725
  {
726
726
  event: "request",
727
+ id: `${symbol}@orderbook`,
727
728
  params: {
728
729
  type: "orderbook",
729
730
  symbol
@@ -879,10 +880,10 @@ function quantityInputHandle(inputs) {
879
880
  price = Number(values.order_price);
880
881
  }
881
882
  const total = quantity.mul(price);
882
- const totalDP = total.dp();
883
+ total.dp();
883
884
  return [
884
885
  __spreadProps(__spreadValues({}, values), {
885
- total: total.todp(Math.min(config.quoteDP, totalDP)).toNumber()
886
+ total: total.todp(2).toNumber()
886
887
  }),
887
888
  input,
888
889
  value,
@@ -1799,29 +1800,48 @@ var useMarketTradeStream = (symbol, options = {}) => {
1799
1800
  throw new Error("useTradeStream: symbol is required");
1800
1801
  }
1801
1802
  const [trades, setTrades] = useState([]);
1802
- const { level = 20 } = options;
1803
- const { isLoading } = useQuery(
1804
- `/v1/public/market_trades?symbol=${symbol}&limit=${level}`,
1805
- {
1806
- onSuccess: (data) => {
1807
- if (Array.isArray(data)) {
1803
+ const [isLoading, setIsLoading] = useState(false);
1804
+ const { limit = 50 } = options;
1805
+ const ws = useWS();
1806
+ useEffect(() => {
1807
+ setIsLoading(true);
1808
+ setTrades(() => []);
1809
+ ws.onceSubscribe(
1810
+ {
1811
+ id: `${symbol}@trade`,
1812
+ event: "request",
1813
+ params: {
1814
+ type: "trade",
1815
+ symbol,
1816
+ limit
1817
+ }
1818
+ },
1819
+ {
1820
+ onMessage: (data) => {
1821
+ setIsLoading(false);
1808
1822
  setTrades(() => data);
1809
1823
  }
1810
- return data;
1811
1824
  }
1812
- }
1813
- );
1814
- const ws = useWS();
1825
+ );
1826
+ }, [symbol]);
1815
1827
  useEffect(() => {
1828
+ if (trades.length <= 0)
1829
+ return;
1816
1830
  const unsubscript = ws.subscribe(`@${symbol}/@trade`, {
1817
1831
  onMessage: (data) => {
1818
- console.log("ws: trade", data);
1832
+ setTrades((prev) => {
1833
+ const arr = [data, ...prev];
1834
+ if (arr.length > limit) {
1835
+ arr.pop();
1836
+ }
1837
+ return arr;
1838
+ });
1819
1839
  }
1820
1840
  });
1821
1841
  return () => {
1822
1842
  unsubscript == null ? void 0 : unsubscript();
1823
1843
  };
1824
- }, []);
1844
+ }, [symbol, trades]);
1825
1845
  return { data: trades, isLoading };
1826
1846
  };
1827
1847
  var useMarginRatio = () => {