@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.d.mts CHANGED
@@ -97,6 +97,8 @@ declare const useEventEmitter: (channel?: string) => EventEmitter<string | symbo
97
97
 
98
98
  declare function useSessionStorage<T>(key: string, initialValue: T): [T, (data: any) => void];
99
99
 
100
+ declare function useLocalStorage<T>(key: string, initialValue: T): [T, any];
101
+
100
102
  type useRunOnceProps = {
101
103
  fn: () => any;
102
104
  sessionKey?: string;
@@ -324,4 +326,4 @@ declare namespace index {
324
326
  };
325
327
  }
326
328
 
327
- export { AppStateErrors, DataSourceProvider, OrderStatus, OrderlyAppConfig, OrderlyContext, OrderlyContextState, OrderlyProvider, index 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 };
329
+ export { AppStateErrors, DataSourceProvider, OrderStatus, OrderlyAppConfig, OrderlyContext, OrderlyContextState, OrderlyProvider, index 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 };
package/dist/index.d.ts CHANGED
@@ -97,6 +97,8 @@ declare const useEventEmitter: (channel?: string) => EventEmitter<string | symbo
97
97
 
98
98
  declare function useSessionStorage<T>(key: string, initialValue: T): [T, (data: any) => void];
99
99
 
100
+ declare function useLocalStorage<T>(key: string, initialValue: T): [T, any];
101
+
100
102
  type useRunOnceProps = {
101
103
  fn: () => any;
102
104
  sessionKey?: string;
@@ -324,4 +326,4 @@ declare namespace index {
324
326
  };
325
327
  }
326
328
 
327
- export { AppStateErrors, DataSourceProvider, OrderStatus, OrderlyAppConfig, OrderlyContext, OrderlyContextState, OrderlyProvider, index 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 };
329
+ export { AppStateErrors, DataSourceProvider, OrderStatus, OrderlyAppConfig, OrderlyContext, OrderlyContextState, OrderlyProvider, index 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 };
package/dist/index.js CHANGED
@@ -350,6 +350,18 @@ var useEventEmitter = (channel) => {
350
350
  return ee;
351
351
  });
352
352
  };
353
+
354
+ // src/utils/json.ts
355
+ function parseJSON(value) {
356
+ try {
357
+ return value === "undefined" ? void 0 : JSON.parse(value != null ? value : "");
358
+ } catch (e) {
359
+ console.log("parsing error on", { value });
360
+ return void 0;
361
+ }
362
+ }
363
+
364
+ // src/useSessionStorage.ts
353
365
  function useSessionStorage(key, initialValue) {
354
366
  const readValue = React2.useCallback(() => {
355
367
  if (typeof window === "undefined") {
@@ -401,13 +413,42 @@ function useSessionStorage(key, initialValue) {
401
413
  );
402
414
  return [storedValue, setValue];
403
415
  }
404
- function parseJSON(value) {
405
- try {
406
- return value === "undefined" ? void 0 : JSON.parse(value != null ? value : "");
407
- } catch (e) {
408
- console.log("parsing error on", { value });
409
- return void 0;
410
- }
416
+ function useLocalStorage(key, initialValue) {
417
+ const readValue = React2.useCallback(() => {
418
+ if (typeof window === "undefined") {
419
+ return initialValue;
420
+ }
421
+ try {
422
+ const item = window.localStorage.getItem(key);
423
+ return item ? parseJSON(item) : initialValue;
424
+ } catch (error) {
425
+ console.warn(`Error reading localStorage key \u201C${key}\u201D:`, error);
426
+ return initialValue;
427
+ }
428
+ }, [initialValue, key]);
429
+ const [storedValue, setStoredValue] = React2.useState(readValue);
430
+ const setValue = React2.useCallback(
431
+ (value) => {
432
+ if (typeof window === "undefined") {
433
+ console.warn(
434
+ `Tried setting localStorage key \u201C${key}\u201D even though environment is not a client`
435
+ );
436
+ }
437
+ try {
438
+ const newValue = value instanceof Function ? value(storedValue) : value;
439
+ window.localStorage.setItem(key, JSON.stringify(newValue));
440
+ setStoredValue(() => newValue);
441
+ } catch (error) {
442
+ console.warn(`Error setting localStorage key \u201C${key}\u201D:`, error);
443
+ }
444
+ },
445
+ [storedValue]
446
+ );
447
+ console.log("storedValue", storedValue);
448
+ React2.useEffect(() => {
449
+ setStoredValue(readValue());
450
+ }, []);
451
+ return [storedValue, setValue];
411
452
  }
412
453
  var useRunOnce = ({ fn, sessionKey }) => {
413
454
  const triggered = React2.useRef(false);
@@ -586,8 +627,6 @@ var useSymbolsInfo = () => {
586
627
  });
587
628
  return createGetter(data);
588
629
  };
589
-
590
- // src/orderly/useOrderbookStream.ts
591
630
  var paddingFn = (len) => Array(len).fill([Number.NaN, Number.NaN, Number.NaN]);
592
631
  var asksSortFn = (a, b) => a[0] - b[0];
593
632
  var bidsSortFn = (a, b) => b[0] - a[0];
@@ -605,13 +644,13 @@ var reduceItems = (depth, level, data, asks = false) => {
605
644
  continue;
606
645
  let priceKey;
607
646
  if (asks) {
608
- priceKey = Math.ceil(price / depth) * depth;
647
+ priceKey = new utils.Decimal(Math.ceil(price / depth)).mul(depth).toNumber();
609
648
  } else {
610
- priceKey = Math.floor(price / depth) * depth;
649
+ priceKey = new utils.Decimal(Math.floor(price / depth)).mul(depth).toNumber();
611
650
  }
612
651
  if (prices.has(priceKey)) {
613
652
  const item = prices.get(priceKey);
614
- const itemPrice = item[1] + quantity;
653
+ const itemPrice = new utils.Decimal(item[1]).add(quantity).toNumber();
615
654
  prices.set(priceKey, [priceKey, itemPrice]);
616
655
  } else {
617
656
  prices.set(priceKey, [priceKey, quantity]);
@@ -623,11 +662,8 @@ var reduceItems = (depth, level, data, asks = false) => {
623
662
  const [price, quantity] = newData[i];
624
663
  if (isNaN(price) || isNaN(quantity))
625
664
  continue;
626
- result.push([
627
- price,
628
- quantity,
629
- quantity + (result.length > 0 ? result[result.length - 1][2] : 0)
630
- ]);
665
+ const newQuantity = new utils.Decimal(quantity).add(result.length > 0 ? result[result.length - 1][2] : 0).toNumber();
666
+ result.push([price, quantity, newQuantity]);
631
667
  if (i + 1 >= level) {
632
668
  break;
633
669
  }
@@ -826,10 +862,9 @@ function priceInputHandle(inputs) {
826
862
  return [values, input, value, markPrice, config];
827
863
  }
828
864
  const total = price.mul(values.order_quantity);
829
- const quantityDP = total.dp();
830
865
  return [
831
866
  __spreadProps(__spreadValues({}, values), {
832
- total: total.todp(Math.max(quantityDP, config.baseDP)).toString()
867
+ total: total.todp(2).toString()
833
868
  }),
834
869
  input,
835
870
  value,
@@ -1969,6 +2004,7 @@ exports.useFetures = useFetures;
1969
2004
  exports.useFundingRate = useFundingRate;
1970
2005
  exports.useHolding = useHolding;
1971
2006
  exports.useLeverage = useLeverage;
2007
+ exports.useLocalStorage = useLocalStorage;
1972
2008
  exports.useMarginRatio = useMarginRatio;
1973
2009
  exports.useMarkPrice = useMarkPrice;
1974
2010
  exports.useMarkPricesStream = useMarkPricesStream;