@orderly.network/hooks 0.0.27 → 0.0.28

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
@@ -341,6 +341,18 @@ var useEventEmitter = (channel) => {
341
341
  return ee;
342
342
  });
343
343
  };
344
+
345
+ // src/utils/json.ts
346
+ function parseJSON(value) {
347
+ try {
348
+ return value === "undefined" ? void 0 : JSON.parse(value != null ? value : "");
349
+ } catch (e) {
350
+ console.log("parsing error on", { value });
351
+ return void 0;
352
+ }
353
+ }
354
+
355
+ // src/useSessionStorage.ts
344
356
  function useSessionStorage(key, initialValue) {
345
357
  const readValue = useCallback(() => {
346
358
  if (typeof window === "undefined") {
@@ -392,13 +404,42 @@ function useSessionStorage(key, initialValue) {
392
404
  );
393
405
  return [storedValue, setValue];
394
406
  }
395
- function parseJSON(value) {
396
- try {
397
- return value === "undefined" ? void 0 : JSON.parse(value != null ? value : "");
398
- } catch (e) {
399
- console.log("parsing error on", { value });
400
- return void 0;
401
- }
407
+ function useLocalStorage(key, initialValue) {
408
+ const readValue = useCallback(() => {
409
+ if (typeof window === "undefined") {
410
+ return initialValue;
411
+ }
412
+ try {
413
+ const item = window.localStorage.getItem(key);
414
+ return item ? parseJSON(item) : initialValue;
415
+ } catch (error) {
416
+ console.warn(`Error reading localStorage key \u201C${key}\u201D:`, error);
417
+ return initialValue;
418
+ }
419
+ }, [initialValue, key]);
420
+ const [storedValue, setStoredValue] = useState(readValue);
421
+ const setValue = useCallback(
422
+ (value) => {
423
+ if (typeof window === "undefined") {
424
+ console.warn(
425
+ `Tried setting localStorage key \u201C${key}\u201D even though environment is not a client`
426
+ );
427
+ }
428
+ try {
429
+ const newValue = value instanceof Function ? value(storedValue) : value;
430
+ window.localStorage.setItem(key, JSON.stringify(newValue));
431
+ setStoredValue(() => newValue);
432
+ } catch (error) {
433
+ console.warn(`Error setting localStorage key \u201C${key}\u201D:`, error);
434
+ }
435
+ },
436
+ [storedValue]
437
+ );
438
+ console.log("storedValue", storedValue);
439
+ useEffect(() => {
440
+ setStoredValue(readValue());
441
+ }, []);
442
+ return [storedValue, setValue];
402
443
  }
403
444
  var useRunOnce = ({ fn, sessionKey }) => {
404
445
  const triggered = useRef(false);
@@ -577,8 +618,6 @@ var useSymbolsInfo = () => {
577
618
  });
578
619
  return createGetter(data);
579
620
  };
580
-
581
- // src/orderly/useOrderbookStream.ts
582
621
  var paddingFn = (len) => Array(len).fill([Number.NaN, Number.NaN, Number.NaN]);
583
622
  var asksSortFn = (a, b) => a[0] - b[0];
584
623
  var bidsSortFn = (a, b) => b[0] - a[0];
@@ -596,13 +635,13 @@ var reduceItems = (depth, level, data, asks = false) => {
596
635
  continue;
597
636
  let priceKey;
598
637
  if (asks) {
599
- priceKey = Math.ceil(price / depth) * depth;
638
+ priceKey = new Decimal(Math.ceil(price / depth)).mul(depth).toNumber();
600
639
  } else {
601
- priceKey = Math.floor(price / depth) * depth;
640
+ priceKey = new Decimal(Math.floor(price / depth)).mul(depth).toNumber();
602
641
  }
603
642
  if (prices.has(priceKey)) {
604
643
  const item = prices.get(priceKey);
605
- const itemPrice = item[1] + quantity;
644
+ const itemPrice = new Decimal(item[1]).add(quantity).toNumber();
606
645
  prices.set(priceKey, [priceKey, itemPrice]);
607
646
  } else {
608
647
  prices.set(priceKey, [priceKey, quantity]);
@@ -614,11 +653,8 @@ var reduceItems = (depth, level, data, asks = false) => {
614
653
  const [price, quantity] = newData[i];
615
654
  if (isNaN(price) || isNaN(quantity))
616
655
  continue;
617
- result.push([
618
- price,
619
- quantity,
620
- quantity + (result.length > 0 ? result[result.length - 1][2] : 0)
621
- ]);
656
+ const newQuantity = new Decimal(quantity).add(result.length > 0 ? result[result.length - 1][2] : 0).toNumber();
657
+ result.push([price, quantity, newQuantity]);
622
658
  if (i + 1 >= level) {
623
659
  break;
624
660
  }
@@ -817,10 +853,9 @@ function priceInputHandle(inputs) {
817
853
  return [values, input, value, markPrice, config];
818
854
  }
819
855
  const total = price.mul(values.order_quantity);
820
- const quantityDP = total.dp();
821
856
  return [
822
857
  __spreadProps(__spreadValues({}, values), {
823
- total: total.todp(Math.max(quantityDP, config.baseDP)).toString()
858
+ total: total.todp(2).toString()
824
859
  }),
825
860
  input,
826
861
  value,
@@ -1934,6 +1969,6 @@ var useFundingRateBySymbol = (symbol) => {
1934
1969
  return useQuery(`/public/funding_rate/${symbol}`);
1935
1970
  };
1936
1971
 
1937
- export { DataSourceProvider, OrderStatus, OrderlyContext, OrderlyProvider, apis_exports as apis, useAccount, useAccountInfo, useAccountInstance, useAppState, useBalance, useChains, useCollateral, useEventEmitter, useExecutionReport, useFetures, useFundingRate, useHolding, useLeverage, useMarginRatio, useMarkPrice, useMarkPricesStream, useMarketTradeStream, useMarketsStream, useMaxQty, useMutation, useOrderEntry, useOrderStream, useOrderbookStream, usePositionStream, usePreLoadData, usePrivateDataObserver, usePrivateObserve, usePrivateQuery, useQuery, useRunOnce, useSessionStorage, useSymbolsInfo, useTickerStream, useTokenInfo, useTopicObserve, useTradingView, useWS };
1972
+ export { DataSourceProvider, OrderStatus, OrderlyContext, OrderlyProvider, apis_exports as apis, useAccount, useAccountInfo, useAccountInstance, useAppState, useBalance, useChains, useCollateral, useEventEmitter, useExecutionReport, useFetures, useFundingRate, useHolding, useLeverage, useLocalStorage, useMarginRatio, useMarkPrice, useMarkPricesStream, useMarketTradeStream, useMarketsStream, useMaxQty, useMutation, useOrderEntry, useOrderStream, useOrderbookStream, usePositionStream, usePreLoadData, usePrivateDataObserver, usePrivateObserve, usePrivateQuery, useQuery, useRunOnce, useSessionStorage, useSymbolsInfo, useTickerStream, useTokenInfo, useTopicObserve, useTradingView, useWS };
1938
1973
  //# sourceMappingURL=out.js.map
1939
1974
  //# sourceMappingURL=index.mjs.map