@orderly.network/hooks 2.8.3 → 2.8.4

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
@@ -36,7 +36,7 @@ declare global {
36
36
  };
37
37
  }
38
38
  }
39
- declare const _default: "2.8.3";
39
+ declare const _default: "2.8.4";
40
40
 
41
41
  declare const fetcher: (url: string, init: RequestInit | undefined, queryOptions: useQueryOptions<any>) => Promise<any>;
42
42
  type useQueryOptions<T> = SWRConfiguration & {
@@ -1093,8 +1093,9 @@ params: {
1093
1093
  readonly refresh: () => void;
1094
1094
  readonly loadMore: () => void;
1095
1095
  readonly cancelAllOrders: () => Promise<[any, any, any]>;
1096
- readonly cancelAllTPSLOrders: () => Promise<any[]>;
1097
- readonly cancelAlgoOrdersByTypes: (types: AlgoOrderRootType[]) => Promise<any[]>;
1096
+ readonly cancelAllPendingOrders: (symbol?: string) => void;
1097
+ readonly cancelAllTPSLOrders: (symbol?: string) => Promise<any[]>;
1098
+ readonly cancelAlgoOrdersByTypes: (types: AlgoOrderRootType[], symbol?: string) => Promise<any[]>;
1098
1099
  readonly updateOrder: (orderId: string, order: OrderEntity) => Promise<any>;
1099
1100
  readonly cancelOrder: (orderId: number, symbol?: string) => Promise<any>;
1100
1101
  readonly updateAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;
@@ -1912,6 +1913,8 @@ interface DataStoreState<T> {
1912
1913
  loading: boolean;
1913
1914
  error: Error | null;
1914
1915
  name: string;
1916
+ /** Whether the store has been hydrated from IndexedDB */
1917
+ hydrated: boolean;
1915
1918
  }
1916
1919
  /**
1917
1920
  * Generic store actions for data fetching
package/dist/index.d.ts CHANGED
@@ -36,7 +36,7 @@ declare global {
36
36
  };
37
37
  }
38
38
  }
39
- declare const _default: "2.8.3";
39
+ declare const _default: "2.8.4";
40
40
 
41
41
  declare const fetcher: (url: string, init: RequestInit | undefined, queryOptions: useQueryOptions<any>) => Promise<any>;
42
42
  type useQueryOptions<T> = SWRConfiguration & {
@@ -1093,8 +1093,9 @@ params: {
1093
1093
  readonly refresh: () => void;
1094
1094
  readonly loadMore: () => void;
1095
1095
  readonly cancelAllOrders: () => Promise<[any, any, any]>;
1096
- readonly cancelAllTPSLOrders: () => Promise<any[]>;
1097
- readonly cancelAlgoOrdersByTypes: (types: AlgoOrderRootType[]) => Promise<any[]>;
1096
+ readonly cancelAllPendingOrders: (symbol?: string) => void;
1097
+ readonly cancelAllTPSLOrders: (symbol?: string) => Promise<any[]>;
1098
+ readonly cancelAlgoOrdersByTypes: (types: AlgoOrderRootType[], symbol?: string) => Promise<any[]>;
1098
1099
  readonly updateOrder: (orderId: string, order: OrderEntity) => Promise<any>;
1099
1100
  readonly cancelOrder: (orderId: number, symbol?: string) => Promise<any>;
1100
1101
  readonly updateAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;
@@ -1912,6 +1913,8 @@ interface DataStoreState<T> {
1912
1913
  loading: boolean;
1913
1914
  error: Error | null;
1914
1915
  name: string;
1916
+ /** Whether the store has been hydrated from IndexedDB */
1917
+ hydrated: boolean;
1915
1918
  }
1916
1919
  /**
1917
1920
  * Generic store actions for data fetching
package/dist/index.js CHANGED
@@ -64,9 +64,9 @@ var __export = (target, all) => {
64
64
  // src/version.ts
65
65
  if (typeof window !== "undefined") {
66
66
  window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
67
- window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.8.3";
67
+ window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.8.4";
68
68
  }
69
- var version_default = "2.8.3";
69
+ var version_default = "2.8.4";
70
70
  var fetcher = (url, init2 = {}, queryOptions) => net.get(url, init2, queryOptions?.formatter);
71
71
  var noCacheConfig = {
72
72
  dedupingInterval: 0,
@@ -2536,8 +2536,10 @@ var adaptToStateStorage = (indexedDBStorage) => ({
2536
2536
  try {
2537
2537
  const parsed = JSON.parse(value);
2538
2538
  const stateData = pathOr__default.default([], ["state"], parsed);
2539
- if (Array.isArray(stateData) && stateData.length > 0) {
2539
+ if (Array.isArray(stateData)) {
2540
2540
  await indexedDBStorage.setItem(stateData);
2541
+ } else if (stateData === null) {
2542
+ await indexedDBStorage.removeItem();
2541
2543
  }
2542
2544
  } catch (error) {
2543
2545
  }
@@ -2576,33 +2578,37 @@ var createDataStore = (config) => {
2576
2578
  } = config;
2577
2579
  return zustand.create(
2578
2580
  persistIndexedDB(
2579
- (set) => ({
2580
- name: storeName,
2581
- data: typeof initData === "undefined" ? [] : initData,
2582
- loading: false,
2583
- error: null,
2584
- fetchData: async (dynamicBaseUrl, options) => {
2585
- try {
2586
- set({ loading: true });
2587
- const brokerIdQuery = typeof options?.brokerId === "string" && options?.brokerId !== "orderly" ? `?broker_id=${options?.brokerId}` : "";
2588
- const url = `${dynamicBaseUrl || baseUrl || ""}${endpoint}${brokerIdQuery}`;
2589
- const data = await fetcher(url, {}, { formatter });
2590
- const dataWithBrokerId = data.map((item) => ({
2591
- ...item,
2592
- broker_id: options?.brokerId
2593
- }));
2594
- set({
2595
- data: dataWithBrokerId,
2596
- loading: false,
2597
- error: null
2598
- });
2599
- return dataWithBrokerId;
2600
- } catch (error) {
2601
- set({ error, loading: false });
2602
- return null;
2581
+ (set) => {
2582
+ const store = {
2583
+ name: storeName,
2584
+ data: typeof initData === "undefined" ? [] : initData,
2585
+ loading: false,
2586
+ error: null,
2587
+ hydrated: false,
2588
+ fetchData: async (dynamicBaseUrl, options) => {
2589
+ try {
2590
+ set({ loading: true });
2591
+ const brokerIdQuery = typeof options?.brokerId === "string" && options?.brokerId !== "orderly" ? `?broker_id=${options?.brokerId}` : "";
2592
+ const url = `${dynamicBaseUrl || baseUrl || ""}${endpoint}${brokerIdQuery}`;
2593
+ const data = await fetcher(url, {}, { formatter });
2594
+ const dataWithBrokerId = data.map((item) => ({
2595
+ ...item,
2596
+ broker_id: options?.brokerId
2597
+ }));
2598
+ set({
2599
+ data: dataWithBrokerId,
2600
+ loading: false,
2601
+ error: null
2602
+ });
2603
+ return dataWithBrokerId;
2604
+ } catch (error) {
2605
+ set({ error, loading: false });
2606
+ return null;
2607
+ }
2603
2608
  }
2604
- }
2605
- }),
2609
+ };
2610
+ return store;
2611
+ },
2606
2612
  {
2607
2613
  name,
2608
2614
  indexedDBConfig: {
@@ -2616,6 +2622,15 @@ var createDataStore = (config) => {
2616
2622
  ...current,
2617
2623
  data: persisted
2618
2624
  };
2625
+ },
2626
+ /**
2627
+ * Callback executed after rehydration from IndexedDB completes
2628
+ * Sets hydrated flag to true to indicate store is ready
2629
+ */
2630
+ onRehydrateStorage: () => (state, error) => {
2631
+ if (state && !error) {
2632
+ state.hydrated = true;
2633
+ }
2619
2634
  }
2620
2635
  }
2621
2636
  )
@@ -6047,7 +6062,7 @@ var useOrderStream = (params, options) => {
6047
6062
  const total = React2.useMemo(() => {
6048
6063
  return orders?.length || 0;
6049
6064
  }, [orders?.length]);
6050
- const cancelAlgoOrdersByTypes = (types$1) => {
6065
+ const cancelAlgoOrdersByTypes = (types$1, symbol2) => {
6051
6066
  if (!types$1) {
6052
6067
  throw new types.SDKError("Types is required");
6053
6068
  }
@@ -6056,7 +6071,10 @@ var useOrderStream = (params, options) => {
6056
6071
  }
6057
6072
  return Promise.all(
6058
6073
  types$1.map((type) => {
6059
- return doCancelAllAlgoOrders(null, { algo_type: type });
6074
+ return doCancelAllAlgoOrders(null, {
6075
+ algo_type: type,
6076
+ ...symbol2 && { symbol: symbol2 }
6077
+ });
6060
6078
  })
6061
6079
  );
6062
6080
  };
@@ -6069,6 +6087,9 @@ var useOrderStream = (params, options) => {
6069
6087
  })
6070
6088
  ]);
6071
6089
  }, [normalOrdersResponse.data, algoOrdersResponse.data]);
6090
+ const cancelAllPendingOrders = React2.useCallback((symbol2) => {
6091
+ doCancelAllOrders(null, { ...symbol2 && { symbol: symbol2 } });
6092
+ }, []);
6072
6093
  const cancelPostionOrdersByTypes = React2.useCallback(
6073
6094
  (symbol2, types) => {
6074
6095
  return doCancelAllAlgoOrders(null, {
@@ -6078,12 +6099,15 @@ var useOrderStream = (params, options) => {
6078
6099
  },
6079
6100
  [algoOrdersResponse.data]
6080
6101
  );
6081
- const cancelAllTPSLOrders = React2.useCallback(() => {
6082
- return cancelAlgoOrdersByTypes([
6083
- types.AlgoOrderRootType.POSITIONAL_TP_SL,
6084
- types.AlgoOrderRootType.TP_SL
6085
- ]);
6086
- }, [algoOrdersResponse.data]);
6102
+ const cancelAllTPSLOrders = React2.useCallback(
6103
+ (symbol2) => {
6104
+ return cancelAlgoOrdersByTypes(
6105
+ [types.AlgoOrderRootType.POSITIONAL_TP_SL, types.AlgoOrderRootType.TP_SL],
6106
+ symbol2
6107
+ );
6108
+ },
6109
+ [algoOrdersResponse.data]
6110
+ );
6087
6111
  const _updateOrder = React2.useCallback(
6088
6112
  (orderId, order, type) => {
6089
6113
  switch (type) {
@@ -6193,6 +6217,7 @@ var useOrderStream = (params, options) => {
6193
6217
  refresh,
6194
6218
  loadMore,
6195
6219
  cancelAllOrders,
6220
+ cancelAllPendingOrders,
6196
6221
  cancelAllTPSLOrders,
6197
6222
  cancelAlgoOrdersByTypes,
6198
6223
  updateOrder,