@ledgerhq/live-common 34.47.0-nightly.0 → 34.47.0-nightly.1

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.
Files changed (36) hide show
  1. package/lib/__tests__/test-helpers/environment.js +2 -0
  2. package/lib/__tests__/test-helpers/environment.js.map +1 -1
  3. package/lib/families/canton/config.d.ts.map +1 -1
  4. package/lib/families/canton/config.js +35 -1
  5. package/lib/families/canton/config.js.map +1 -1
  6. package/lib/modularDrawer/data/state-manager/api.d.ts +729 -24
  7. package/lib/modularDrawer/data/state-manager/api.d.ts.map +1 -1
  8. package/lib/modularDrawer/data/state-manager/api.js +29 -11
  9. package/lib/modularDrawer/data/state-manager/api.js.map +1 -1
  10. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.js +129 -73
  11. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.js.map +1 -1
  12. package/lib/modularDrawer/hooks/useAssetsData.d.ts +4 -5
  13. package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  14. package/lib/modularDrawer/hooks/useAssetsData.js +34 -15
  15. package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -1
  16. package/lib-es/__tests__/test-helpers/environment.js +2 -0
  17. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  18. package/lib-es/families/canton/config.d.ts.map +1 -1
  19. package/lib-es/families/canton/config.js +35 -1
  20. package/lib-es/families/canton/config.js.map +1 -1
  21. package/lib-es/modularDrawer/data/state-manager/api.d.ts +729 -24
  22. package/lib-es/modularDrawer/data/state-manager/api.d.ts.map +1 -1
  23. package/lib-es/modularDrawer/data/state-manager/api.js +28 -10
  24. package/lib-es/modularDrawer/data/state-manager/api.js.map +1 -1
  25. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.js +130 -74
  26. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.js.map +1 -1
  27. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +4 -5
  28. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  29. package/lib-es/modularDrawer/hooks/useAssetsData.js +36 -17
  30. package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -1
  31. package/package.json +39 -39
  32. package/src/__tests__/test-helpers/environment.ts +2 -0
  33. package/src/families/canton/config.ts +36 -1
  34. package/src/modularDrawer/data/state-manager/api.ts +32 -11
  35. package/src/modularDrawer/hooks/__test__/useAssetsData.test.ts +136 -75
  36. package/src/modularDrawer/hooks/useAssetsData.ts +40 -17
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/data/state-manager/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE7F,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AAGzD,oBAAY,cAAc;IACxB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,UAAU,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAmBD,eAAO,MAAM,aAAa;;gKAqBxB,CAAC;AAEH,eAAO,MAAQ,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/data/state-manager/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE7F,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AAGzD,oBAAY,cAAc;IACxB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,UAAU,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAmBD,eAAO,MAAM,aAAa;;gKAuCxB,CAAC;AAEH,eAAO,MAAQ,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAAkB,CAAC"}
@@ -23,20 +23,38 @@ export const assetsDataApi = createApi({
23
23
  }),
24
24
  tagTypes: [AssetsDataTags.Assets],
25
25
  endpoints: build => ({
26
- getAssetsData: build.query({
27
- query: ({ cursor, search, currencyIds: _currencyIds }) => ({
28
- url: "assets",
29
- params: {
30
- ...(cursor && { cursor }),
31
- ...(search && { search }),
32
- // ...(currencyIds && currencyIds.length > 0 && { currencyIds }),
26
+ getAssetsData: build.infiniteQuery({
27
+ query: ({ pageParam, queryArg }) => {
28
+ const params = {
33
29
  pageSize: 100,
34
- },
35
- }),
30
+ ...(pageParam?.cursor && { cursor: pageParam.cursor }),
31
+ // ...(queryArg?.currencyIds && queryArg?.currencyIds.length > 0 && { currencyIds: queryArg.currencyIds }),
32
+ ...(queryArg?.search && { search: queryArg.search }),
33
+ };
34
+ return {
35
+ url: "assets",
36
+ params,
37
+ };
38
+ },
36
39
  providesTags: [AssetsDataTags.Assets],
37
40
  transformResponse: transformAssetsResponse,
41
+ infiniteQueryOptions: {
42
+ initialPageParam: {
43
+ cursor: "",
44
+ },
45
+ getNextPageParam: lastPage => {
46
+ if (lastPage.pagination.nextCursor) {
47
+ return {
48
+ cursor: lastPage.pagination.nextCursor,
49
+ };
50
+ }
51
+ else {
52
+ return undefined;
53
+ }
54
+ },
55
+ },
38
56
  }),
39
57
  }),
40
58
  });
41
- export const { useGetAssetsDataQuery } = assetsDataApi;
59
+ export const { useGetAssetsDataInfiniteQuery } = assetsDataApi;
42
60
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/modularDrawer/data/state-manager/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAsB,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,mCAAiB,CAAA;AACnB,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AAcD,SAAS,uBAAuB,CAC9B,QAAwB,EACxB,IAAyB;IAEzB,MAAM,+BAA+B,GAAG,gBAAgB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC;IAE7E,OAAO;QACL,GAAG,QAAQ;QACX,uBAAuB,EAAE,+BAA+B;QACxD,UAAU,EAAE;YACV,UAAU;SACX;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;IACrC,WAAW,EAAE,eAAe;IAC5B,SAAS,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;KACxE,CAAC;IACF,QAAQ,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,aAAa,EAAE,KAAK,CAAC,KAAK,CAAgD;YACxE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzD,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE;oBACN,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;oBACzB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;oBACzB,iEAAiE;oBACjE,QAAQ,EAAE,GAAG;iBACd;aACF,CAAC;YACF,YAAY,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;YACrC,iBAAiB,EAAE,uBAAuB;SAC3C,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/modularDrawer/data/state-manager/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAsB,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,mCAAiB,CAAA;AACnB,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AAiBD,SAAS,uBAAuB,CAC9B,QAAwB,EACxB,IAAyB;IAEzB,MAAM,+BAA+B,GAAG,gBAAgB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC;IAE7E,OAAO;QACL,GAAG,QAAQ;QACX,uBAAuB,EAAE,+BAA+B;QACxD,UAAU,EAAE;YACV,UAAU;SACX;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;IACrC,WAAW,EAAE,eAAe;IAC5B,SAAS,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;KACxE,CAAC;IACF,QAAQ,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,aAAa,EAAE,KAAK,CAAC,aAAa,CAA2D;YAC3F,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG;oBACb,QAAQ,EAAE,GAAG;oBACb,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;oBACtD,2GAA2G;oBAC3G,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACrD,CAAC;gBAEF,OAAO;oBACL,GAAG,EAAE,QAAQ;oBACb,MAAM;iBACP,CAAC;YACJ,CAAC;YACD,YAAY,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;YACrC,iBAAiB,EAAE,uBAAuB;YAC1C,oBAAoB,EAAE;gBACpB,gBAAgB,EAAE;oBAChB,MAAM,EAAE,EAAE;iBACX;gBACD,gBAAgB,EAAE,QAAQ,CAAC,EAAE;oBAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;wBAClC,OAAO;4BACL,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;yBACvC,CAAC;qBACH;yBAAM;wBACL,OAAO,SAAS,CAAC;qBAClB;gBACH,CAAC;aACF;SACF,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,6BAA6B,EAAE,GAAG,aAAa,CAAC"}
@@ -3,116 +3,172 @@
3
3
  */
4
4
  import { renderHook } from "@testing-library/react";
5
5
  import { useAssetsData } from "../useAssetsData";
6
- import { useGetAssetsDataQuery } from "../../data/state-manager/api";
6
+ import { useGetAssetsDataInfiniteQuery } from "../../data/state-manager/api";
7
7
  jest.mock("../../data/state-manager/api", () => ({
8
- useGetAssetsDataQuery: jest.fn(),
8
+ useGetAssetsDataInfiniteQuery: jest.fn(),
9
9
  }));
10
- const mockSetCursor = jest.fn();
11
- jest.mock("react", () => ({
12
- ...jest.requireActual("react"),
13
- useState: jest.fn(() => [undefined, mockSetCursor]),
14
- useCallback: jest.fn(fn => fn),
15
- useMemo: jest.fn(fn => fn()),
16
- }));
17
- const mockUseGetAssetsDataQuery = jest.mocked(useGetAssetsDataQuery);
10
+ const mockuseGetAssetsDataInfiniteQuery = jest.mocked(useGetAssetsDataInfiniteQuery);
11
+ const defaultMockValues = {
12
+ data: undefined,
13
+ isLoading: false,
14
+ error: undefined,
15
+ fetchNextPage: jest.fn(),
16
+ isSuccess: true,
17
+ isFetching: false,
18
+ isError: false,
19
+ fetchPreviousPage: jest.fn(),
20
+ isFetchingPreviousPage: false,
21
+ refetch: jest.fn(),
22
+ status: "success",
23
+ };
18
24
  describe("useAssetsData", () => {
19
25
  beforeEach(() => {
20
26
  jest.clearAllMocks();
21
27
  });
22
28
  it("should return loading state when API is loading", () => {
23
- mockUseGetAssetsDataQuery.mockReturnValue({
24
- data: undefined,
29
+ mockuseGetAssetsDataInfiniteQuery.mockReturnValue({
30
+ ...defaultMockValues,
25
31
  isLoading: true,
26
- error: undefined,
27
- refetch: jest.fn(),
28
- isFetching: false,
29
- isSuccess: false,
30
- isError: false,
31
- currentData: undefined,
32
+ status: "pending",
32
33
  });
33
34
  const { result } = renderHook(() => useAssetsData({}));
34
35
  expect(result.current.isLoading).toBe(true);
35
36
  expect(result.current.data).toBe(undefined);
36
- expect(result.current.hasMore).toBe(false);
37
37
  });
38
- it("should return data and hasMore when API returns data", () => {
39
- const mockData = {
40
- assetsData: [],
41
- pagination: { nextCursor: "test-cursor" },
42
- };
43
- mockUseGetAssetsDataQuery.mockReturnValue({
44
- data: mockData,
45
- isLoading: false,
46
- error: undefined,
47
- refetch: jest.fn(),
48
- isFetching: false,
49
- isSuccess: true,
50
- isError: false,
51
- currentData: mockData,
38
+ it("should return combined data from multiple pages", () => {
39
+ const mockPages = [
40
+ {
41
+ cryptoAssets: { bitcoin: { id: "bitcoin", name: "Bitcoin" } },
42
+ networks: { bitcoin: { id: "bitcoin", name: "Bitcoin" } },
43
+ cryptoOrTokenCurrencies: { bitcoin: { id: "bitcoin" } },
44
+ interestRates: {},
45
+ markets: {},
46
+ currenciesOrder: {
47
+ currenciesIds: ["bitcoin"],
48
+ metaCurrencyIds: ["bitcoin"],
49
+ key: "marketCap",
50
+ order: "desc",
51
+ },
52
+ pagination: { nextCursor: "cursor-2" },
53
+ },
54
+ {
55
+ cryptoAssets: { ethereum: { id: "ethereum", name: "Ethereum" } },
56
+ networks: { ethereum: { id: "ethereum", name: "Ethereum" } },
57
+ cryptoOrTokenCurrencies: { ethereum: { id: "ethereum" } },
58
+ interestRates: {},
59
+ markets: {},
60
+ currenciesOrder: {
61
+ currenciesIds: ["ethereum"],
62
+ metaCurrencyIds: ["ethereum"],
63
+ key: "marketCap",
64
+ order: "desc",
65
+ },
66
+ pagination: { nextCursor: undefined },
67
+ },
68
+ ];
69
+ mockuseGetAssetsDataInfiniteQuery.mockReturnValue({
70
+ ...defaultMockValues,
71
+ data: { pages: mockPages, pageParams: [{ cursor: "" }, { cursor: "cursor-2" }] },
52
72
  });
53
73
  const { result } = renderHook(() => useAssetsData({}));
54
- expect(result.current.data).toBe(mockData);
74
+ expect(result.current.data).toEqual({
75
+ cryptoAssets: {
76
+ bitcoin: { id: "bitcoin", name: "Bitcoin" },
77
+ ethereum: { id: "ethereum", name: "Ethereum" },
78
+ },
79
+ networks: {
80
+ bitcoin: { id: "bitcoin", name: "Bitcoin" },
81
+ ethereum: { id: "ethereum", name: "Ethereum" },
82
+ },
83
+ cryptoOrTokenCurrencies: {
84
+ bitcoin: { id: "bitcoin" },
85
+ ethereum: { id: "ethereum" },
86
+ },
87
+ interestRates: {},
88
+ markets: {},
89
+ currenciesOrder: {
90
+ currenciesIds: ["bitcoin", "ethereum"],
91
+ metaCurrencyIds: ["bitcoin", "ethereum"],
92
+ key: "marketCap",
93
+ order: "desc",
94
+ },
95
+ pagination: { nextCursor: undefined },
96
+ });
55
97
  expect(result.current.isLoading).toBe(false);
56
- expect(result.current.hasMore).toBe(true);
57
98
  });
58
99
  it("should return error when API has error", () => {
59
100
  const mockError = new Error("API Error");
60
- mockUseGetAssetsDataQuery.mockReturnValue({
101
+ mockuseGetAssetsDataInfiniteQuery.mockReturnValue({
102
+ ...defaultMockValues,
61
103
  data: undefined,
62
- isLoading: false,
63
104
  error: mockError,
64
- refetch: jest.fn(),
65
- isFetching: false,
66
105
  isSuccess: false,
67
106
  isError: true,
68
- currentData: undefined,
107
+ status: "error",
69
108
  });
70
109
  const { result } = renderHook(() => useAssetsData({}));
71
110
  expect(result.current.error).toBe(mockError);
72
111
  expect(result.current.isLoading).toBe(false);
73
112
  });
74
- it("should call setCursor when loadNext is called and there's a nextCursor", () => {
75
- const nextCursor = "next-cursor-456";
76
- mockUseGetAssetsDataQuery.mockReturnValue({
77
- data: {
78
- assetsData: [],
79
- pagination: { nextCursor },
80
- },
81
- isLoading: false,
82
- error: undefined,
83
- refetch: jest.fn(),
84
- isFetching: false,
85
- isSuccess: true,
86
- isError: false,
87
- currentData: {
88
- assetsData: [],
89
- pagination: { nextCursor },
113
+ it("should provide loadNext function when there's a nextCursor", () => {
114
+ const mockFetchNextPage = jest.fn();
115
+ const mockPages = [
116
+ {
117
+ cryptoAssets: {},
118
+ networks: {},
119
+ cryptoOrTokenCurrencies: {},
120
+ interestRates: {},
121
+ markets: {},
122
+ currenciesOrder: {
123
+ currenciesIds: [],
124
+ metaCurrencyIds: [],
125
+ key: "marketCap",
126
+ order: "desc",
127
+ },
128
+ pagination: { nextCursor: "next-cursor-456" },
90
129
  },
130
+ ];
131
+ mockuseGetAssetsDataInfiniteQuery.mockReturnValue({
132
+ ...defaultMockValues,
133
+ data: { pages: mockPages, pageParams: [{ cursor: "" }] },
134
+ fetchNextPage: mockFetchNextPage,
91
135
  });
92
136
  const { result } = renderHook(() => useAssetsData({}));
93
- result.current.loadNext();
94
- expect(mockSetCursor).toHaveBeenCalledWith(nextCursor);
137
+ expect(result.current.loadNext).toBeDefined();
138
+ result.current.loadNext?.();
139
+ expect(mockFetchNextPage).toHaveBeenCalled();
95
140
  });
96
- it("should not call setCursor when there's no nextCursor", () => {
97
- mockUseGetAssetsDataQuery.mockReturnValue({
98
- data: {
99
- assetsData: [],
100
- pagination: { nextCursor: undefined },
101
- },
102
- isLoading: false,
103
- error: undefined,
104
- refetch: jest.fn(),
105
- isFetching: false,
106
- isSuccess: true,
107
- isError: false,
108
- currentData: {
109
- assetsData: [],
141
+ it("should not provide loadNext function when there's no nextCursor", () => {
142
+ const mockPages = [
143
+ {
144
+ cryptoAssets: {},
145
+ networks: {},
146
+ cryptoOrTokenCurrencies: {},
147
+ interestRates: {},
148
+ markets: {},
149
+ currenciesOrder: {
150
+ currenciesIds: [],
151
+ metaCurrencyIds: [],
152
+ key: "marketCap",
153
+ order: "desc",
154
+ },
110
155
  pagination: { nextCursor: undefined },
111
156
  },
157
+ ];
158
+ mockuseGetAssetsDataInfiniteQuery.mockReturnValue({
159
+ ...defaultMockValues,
160
+ data: { pages: mockPages, pageParams: [{ cursor: "" }] },
161
+ });
162
+ const { result } = renderHook(() => useAssetsData({}));
163
+ expect(result.current.loadNext).toBeUndefined();
164
+ });
165
+ it("should return undefined data when no pages exist", () => {
166
+ mockuseGetAssetsDataInfiniteQuery.mockReturnValue({
167
+ ...defaultMockValues,
112
168
  });
113
169
  const { result } = renderHook(() => useAssetsData({}));
114
- result.current.loadNext();
115
- expect(mockSetCursor).not.toHaveBeenCalled();
170
+ expect(result.current.data).toBeUndefined();
171
+ expect(result.current.loadNext).toBeUndefined();
116
172
  });
117
173
  });
118
174
  //# sourceMappingURL=useAssetsData.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsData.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/hooks/__test__/useAssetsData.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;CACjC,CAAC,CAAC,CAAC;AAEJ,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IAC9B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACnD,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;CAC7B,CAAC,CAAC,CAAC;AAEJ,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAErE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,yBAAyB,CAAC,eAAe,CAAC;YACxC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,QAAQ,GAAG;YACf,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE;SAC1C,CAAC;QACF,yBAAyB,CAAC,eAAe,CAAC;YACxC,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,yBAAyB,CAAC,eAAe,CAAC;YACxC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC;QACrC,yBAAyB,CAAC,eAAe,CAAC;YACxC,IAAI,EAAE;gBACJ,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE,UAAU,EAAE;aAC3B;YACD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE,UAAU,EAAE;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE1B,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,yBAAyB,CAAC,eAAe,CAAC;YACxC,IAAI,EAAE;gBACJ,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;aACtC;YACD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;aACtC;SACF,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE1B,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"useAssetsData.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/hooks/__test__/useAssetsData.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,6BAA6B,EAAE,IAAI,CAAC,EAAE,EAAE;CACzC,CAAC,CAAC,CAAC;AAEJ,MAAM,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAErF,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,SAAS;IAChB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;IACxB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC5B,sBAAsB,EAAE,KAAK;IAC7B,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;IAClB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,iCAAiC,CAAC,eAAe,CAAC;YAChD,GAAG,iBAAiB;YACpB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG;YAChB;gBACE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;gBAC7D,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;gBACzD,uBAAuB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;gBACvD,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE;oBACf,aAAa,EAAE,CAAC,SAAS,CAAC;oBAC1B,eAAe,EAAE,CAAC,SAAS,CAAC;oBAC5B,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,MAAM;iBACd;gBACD,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;aACvC;YACD;gBACE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAChE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC5D,uBAAuB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;gBACzD,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE;oBACf,aAAa,EAAE,CAAC,UAAU,CAAC;oBAC3B,eAAe,EAAE,CAAC,UAAU,CAAC;oBAC7B,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,MAAM;iBACd;gBACD,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;aACtC;SACF,CAAC;QAEF,iCAAiC,CAAC,eAAe,CAAC;YAChD,GAAG,iBAAiB;YACpB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;SACjF,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAClC,YAAY,EAAE;gBACZ,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC3C,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;aAC/C;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC3C,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;aAC/C;YACD,uBAAuB,EAAE;gBACvB,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;aAC7B;YACD,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE;gBACf,aAAa,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;gBACtC,eAAe,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;gBACxC,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,MAAM;aACd;YACD,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,iCAAiC,CAAC,eAAe,CAAC;YAChD,GAAG,iBAAiB;YACpB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG;YAChB;gBACE,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE,EAAE;gBACZ,uBAAuB,EAAE,EAAE;gBAC3B,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE;oBACf,aAAa,EAAE,EAAE;oBACjB,eAAe,EAAE,EAAE;oBACnB,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,MAAM;iBACd;gBACD,UAAU,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE;aAC9C;SACF,CAAC;QAEF,iCAAiC,CAAC,eAAe,CAAC;YAChD,GAAG,iBAAiB;YACpB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE;YACxD,aAAa,EAAE,iBAAiB;SACjC,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE5B,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS,GAAG;YAChB;gBACE,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE,EAAE;gBACZ,uBAAuB,EAAE,EAAE;gBAC3B,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE;oBACf,aAAa,EAAE,EAAE;oBACjB,eAAe,EAAE,EAAE;oBACnB,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,MAAM;iBACd;gBACD,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;aACtC;SACF,CAAC;QAEF,iCAAiC,CAAC,eAAe,CAAC;YAChD,GAAG,iBAAiB;YACpB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,iCAAiC,CAAC,eAAe,CAAC;YAChD,GAAG,iBAAiB;SACrB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,13 +1,12 @@
1
+ import { AssetsDataWithPagination } from "../data/state-manager/api";
1
2
  export declare function useAssetsData({ search, currencyIds, }: {
2
3
  search?: string;
3
4
  currencyIds?: string[];
4
5
  }): {
5
- data: import("../data/state-manager/api").AssetsDataWithPagination | undefined;
6
- error: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
6
+ data: AssetsDataWithPagination | undefined;
7
7
  isLoading: boolean;
8
+ error: import("@reduxjs/toolkit").SerializedError | undefined;
9
+ loadNext: (() => import("@reduxjs/toolkit/query").InfiniteQueryActionCreatorResult<import("@reduxjs/toolkit/query").InfiniteQueryDefinition<import("../data/state-manager/api").GetAssetsDataParams, import("../data/state-manager/api").PageParam, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, import("../data/state-manager/api").AssetsDataTags, AssetsDataWithPagination, "assetsDataApi", unknown>>) | undefined;
8
10
  isSuccess: boolean;
9
- hasMore: boolean;
10
- cursor: string | undefined;
11
- loadNext: () => void;
12
11
  };
13
12
  //# sourceMappingURL=useAssetsData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsData.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useAssetsData.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;;;;;;;;EA0BA"}
1
+ {"version":3,"file":"useAssetsData.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useAssetsData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAiC,MAAM,2BAA2B,CAAC;AAiBpG,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;;;;;;EAkCA"}
@@ -1,27 +1,46 @@
1
- import { useState, useCallback } from "react";
2
- import { useGetAssetsDataQuery } from "../data/state-manager/api";
1
+ import { useMemo } from "react";
2
+ import { useGetAssetsDataInfiniteQuery } from "../data/state-manager/api";
3
+ const emptyData = () => ({
4
+ cryptoAssets: {},
5
+ networks: {},
6
+ cryptoOrTokenCurrencies: {},
7
+ interestRates: {},
8
+ markets: {},
9
+ currenciesOrder: {
10
+ currenciesIds: [],
11
+ metaCurrencyIds: [],
12
+ key: "",
13
+ order: "",
14
+ },
15
+ pagination: { nextCursor: "" },
16
+ });
3
17
  export function useAssetsData({ search, currencyIds, }) {
4
- const [cursor, setCursor] = useState(undefined);
5
- const { data, error, isLoading, isSuccess } = useGetAssetsDataQuery({
6
- cursor,
18
+ const { data, isLoading, error, fetchNextPage, isSuccess } = useGetAssetsDataInfiniteQuery({
7
19
  search,
8
20
  currencyIds,
9
21
  });
10
- const loadNext = useCallback(() => {
11
- const nextCursor = data?.pagination?.nextCursor;
12
- if (nextCursor) {
13
- setCursor(nextCursor);
14
- }
15
- }, [data?.pagination?.nextCursor]);
16
- const hasMore = Boolean(data?.pagination?.nextCursor);
22
+ const joinedPages = useMemo(() => {
23
+ return data?.pages.reduce((acc, page) => {
24
+ Object.assign(acc.cryptoAssets, page.cryptoAssets);
25
+ Object.assign(acc.networks, page.networks);
26
+ Object.assign(acc.cryptoOrTokenCurrencies, page.cryptoOrTokenCurrencies);
27
+ Object.assign(acc.interestRates, page.interestRates);
28
+ Object.assign(acc.markets, page.markets);
29
+ acc.currenciesOrder.currenciesIds.push(...page.currenciesOrder.currenciesIds);
30
+ acc.currenciesOrder.metaCurrencyIds.push(...page.currenciesOrder.metaCurrencyIds);
31
+ acc.currenciesOrder.key = page.currenciesOrder.key;
32
+ acc.currenciesOrder.order = page.currenciesOrder.order;
33
+ acc.pagination.nextCursor = page.pagination.nextCursor;
34
+ return acc;
35
+ }, emptyData());
36
+ }, [data]);
37
+ const hasMore = Boolean(joinedPages?.pagination.nextCursor);
17
38
  return {
18
- data,
19
- error,
39
+ data: joinedPages,
20
40
  isLoading,
41
+ error,
42
+ loadNext: hasMore ? fetchNextPage : undefined,
21
43
  isSuccess,
22
- hasMore,
23
- cursor,
24
- loadNext,
25
44
  };
26
45
  }
27
46
  //# sourceMappingURL=useAssetsData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsData.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useAssetsData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,GAIZ;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACpE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC;QAClE,MAAM;QACN,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC;QAChD,IAAI,UAAU,EAAE;YACd,SAAS,CAAC,UAAU,CAAC,CAAC;SACvB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI;QACJ,KAAK;QACL,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useAssetsData.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useAssetsData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAA4B,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAEpG,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;IACvB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,uBAAuB,EAAE,EAAE;IAC3B,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,eAAe,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,EAAE;KACV;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,GAIZ;IACC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,6BAA6B,CAAC;QACzF,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,IAAI,EAAE,KAAK,CAAC,MAAM,CAA2B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAChE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEzC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC9E,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAElF,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YACnD,GAAG,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YACvD,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAEvD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAE5D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS;QACT,KAAK;QACL,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC7C,SAAS;KACV,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-common",
3
3
  "description": "Common ground for the Ledger Live apps",
4
- "version": "34.47.0-nightly.0",
4
+ "version": "34.47.0-nightly.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -165,35 +165,35 @@
165
165
  "xstate": "^5.19.2",
166
166
  "yargs": "^17.0.0",
167
167
  "zod": "^3.22.4",
168
- "@ledgerhq/coin-algorand": "^0.9.18",
169
- "@ledgerhq/coin-aptos": "^3.1.1",
170
- "@ledgerhq/coin-bitcoin": "^0.20.2",
171
- "@ledgerhq/coin-canton": "^0.3.0",
172
- "@ledgerhq/coin-cardano": "^0.11.2",
173
- "@ledgerhq/coin-casper": "^2.0.9",
174
- "@ledgerhq/coin-celo": "^1.2.1",
175
- "@ledgerhq/coin-cosmos": "^0.16.7",
176
- "@ledgerhq/coin-evm": "^2.28.0",
177
- "@ledgerhq/coin-filecoin": "^1.10.1",
178
- "@ledgerhq/coin-framework": "^6.2.0",
179
- "@ledgerhq/coin-hedera": "^1.10.1",
180
- "@ledgerhq/coin-icon": "^0.11.5",
181
- "@ledgerhq/coin-internet_computer": "^1.7.18",
182
- "@ledgerhq/coin-mina": "^1.1.17",
183
- "@ledgerhq/coin-multiversx": "^0.4.18",
184
- "@ledgerhq/coin-near": "^0.12.1",
185
- "@ledgerhq/coin-polkadot": "^6.8.0",
186
- "@ledgerhq/coin-solana": "^0.31.1",
187
- "@ledgerhq/coin-stacks": "^0.8.18",
188
- "@ledgerhq/coin-stellar": "^6.2.0",
189
- "@ledgerhq/coin-sui": "^0.12.0-nightly.0",
190
- "@ledgerhq/coin-tezos": "^6.2.0",
191
- "@ledgerhq/coin-ton": "^0.13.8-nightly.0",
192
- "@ledgerhq/coin-tron": "^5.3.0-nightly.0",
193
- "@ledgerhq/coin-vechain": "^2.8.2",
194
- "@ledgerhq/coin-xrp": "^7.2.0",
168
+ "@ledgerhq/coin-algorand": "^0.9.19-nightly.0",
169
+ "@ledgerhq/coin-aptos": "^3.1.2-nightly.0",
170
+ "@ledgerhq/coin-bitcoin": "^0.20.3-nightly.0",
171
+ "@ledgerhq/coin-canton": "^0.4.0-nightly.0",
172
+ "@ledgerhq/coin-cardano": "^0.11.3-nightly.0",
173
+ "@ledgerhq/coin-casper": "^2.0.10-nightly.0",
174
+ "@ledgerhq/coin-celo": "^1.2.2-nightly.0",
175
+ "@ledgerhq/coin-cosmos": "^0.16.8-nightly.0",
176
+ "@ledgerhq/coin-evm": "^2.29.0-nightly.0",
177
+ "@ledgerhq/coin-filecoin": "^1.10.2-nightly.0",
178
+ "@ledgerhq/coin-framework": "^6.2.1-nightly.0",
179
+ "@ledgerhq/coin-hedera": "^1.10.2-nightly.0",
180
+ "@ledgerhq/coin-icon": "^0.11.6-nightly.0",
181
+ "@ledgerhq/coin-internet_computer": "^1.7.19-nightly.0",
182
+ "@ledgerhq/coin-mina": "^1.1.18-nightly.0",
183
+ "@ledgerhq/coin-multiversx": "^0.4.19-nightly.0",
184
+ "@ledgerhq/coin-near": "^0.12.2-nightly.0",
185
+ "@ledgerhq/coin-polkadot": "^6.8.1-nightly.0",
186
+ "@ledgerhq/coin-solana": "^0.31.2-nightly.0",
187
+ "@ledgerhq/coin-stacks": "^0.8.19-nightly.0",
188
+ "@ledgerhq/coin-stellar": "^6.3.0-nightly.0",
189
+ "@ledgerhq/coin-sui": "^0.12.0-nightly.1",
190
+ "@ledgerhq/coin-tezos": "^6.2.1-nightly.0",
191
+ "@ledgerhq/coin-ton": "^0.13.8-nightly.1",
192
+ "@ledgerhq/coin-tron": "^5.3.0-nightly.1",
193
+ "@ledgerhq/coin-vechain": "^2.8.3-nightly.0",
194
+ "@ledgerhq/coin-xrp": "^7.2.1-nightly.0",
195
195
  "@ledgerhq/crypto-icons-ui": "^1.18.0-nightly.0",
196
- "@ledgerhq/cryptoassets": "^13.26.0",
196
+ "@ledgerhq/cryptoassets": "^13.27.0-nightly.0",
197
197
  "@ledgerhq/device-core": "^0.6.1",
198
198
  "@ledgerhq/devices": "8.5.1-nightly.0",
199
199
  "@ledgerhq/errors": "^6.25.0-nightly.0",
@@ -213,24 +213,24 @@
213
213
  "@ledgerhq/hw-app-sui": "^1.4.0-nightly.0",
214
214
  "@ledgerhq/hw-app-tezos": "^6.31.6-nightly.0",
215
215
  "@ledgerhq/hw-app-trx": "^6.31.6-nightly.0",
216
- "@ledgerhq/hw-app-vet": "^0.5.14",
216
+ "@ledgerhq/hw-app-vet": "^0.5.15-nightly.0",
217
217
  "@ledgerhq/hw-app-xrp": "^6.32.4-nightly.0",
218
218
  "@ledgerhq/hw-transport": "^6.31.10-nightly.0",
219
219
  "@ledgerhq/hw-transport-mocker": "^6.29.10-nightly.0",
220
- "@ledgerhq/ledger-cal-service": "^1.3.1-nightly.1",
220
+ "@ledgerhq/ledger-cal-service": "^1.4.0-nightly.2",
221
221
  "@ledgerhq/live-config": "^3.2.0-nightly.0",
222
- "@ledgerhq/live-countervalues": "^0.6.2",
223
- "@ledgerhq/live-countervalues-react": "^0.5.0",
222
+ "@ledgerhq/live-countervalues": "^0.6.3-nightly.0",
223
+ "@ledgerhq/live-countervalues-react": "^0.6.0-nightly.0",
224
224
  "@ledgerhq/live-dmk-shared": "^0.12.1",
225
225
  "@ledgerhq/live-env": "^2.15.0-nightly.1",
226
226
  "@ledgerhq/live-hooks": "0.1.0",
227
227
  "@ledgerhq/live-network": "^2.0.16-nightly.1",
228
- "@ledgerhq/live-nft": "^0.8.18",
228
+ "@ledgerhq/live-nft": "^0.8.19-nightly.0",
229
229
  "@ledgerhq/live-promise": "^0.1.1",
230
- "@ledgerhq/live-signer-canton": "^0.2.3-nightly.0",
231
- "@ledgerhq/live-signer-evm": "^0.7.1",
232
- "@ledgerhq/live-signer-solana": "^0.5.3",
233
- "@ledgerhq/live-wallet": "^0.12.2",
230
+ "@ledgerhq/live-signer-canton": "^0.2.3-nightly.1",
231
+ "@ledgerhq/live-signer-evm": "^0.7.2-nightly.0",
232
+ "@ledgerhq/live-signer-solana": "^0.5.4-nightly.0",
233
+ "@ledgerhq/live-wallet": "^0.12.3-nightly.0",
234
234
  "@ledgerhq/logs": "^6.13.0",
235
235
  "@ledgerhq/speculos-transport": "^0.2.9-nightly.1",
236
236
  "@ledgerhq/wallet-api-acre-module": "^0.6.0",
@@ -283,7 +283,7 @@
283
283
  "uuid": "^8.3.2",
284
284
  "ws": "7",
285
285
  "@ledgerhq/device-react": "^0.2.42",
286
- "@ledgerhq/types-cryptoassets": "^7.26.0-nightly.0",
286
+ "@ledgerhq/types-cryptoassets": "^7.26.0-nightly.1",
287
287
  "@ledgerhq/types-devices": "^6.27.0",
288
288
  "@ledgerhq/types-live": "^6.82.0"
289
289
  },
@@ -117,6 +117,8 @@ setSupportedCurrencies([
117
117
  "mina",
118
118
  "babylon",
119
119
  "canton_network",
120
+ "canton_network_devnet",
121
+ "canton_network_localnet",
120
122
  ]);
121
123
  LiveConfig.setConfig(liveConfig);
122
124
 
@@ -1,12 +1,47 @@
1
1
  import { ConfigInfo } from "@ledgerhq/live-config/LiveConfig";
2
2
 
3
3
  export const cantonConfig: Record<string, ConfigInfo> = {
4
- config_currency_canton: {
4
+ config_currency_canton_network: {
5
5
  type: "object",
6
6
  default: {
7
7
  status: {
8
8
  type: "active",
9
9
  },
10
+ // TBC
11
+ nodeUrl: "https://wallet-validator-canton.ledger.com",
12
+ nodeId: "figment",
13
+ // TBC
14
+ gatewayUrl: "https://canton-gateway.api.live.ledger.com",
15
+ minReserve: 0,
16
+ useGateway: true,
17
+ },
18
+ },
19
+ config_currency_canton_network_devnet: {
20
+ type: "object",
21
+ default: {
22
+ status: {
23
+ type: "active",
24
+ },
25
+ nodeUrl: "https://wallet-validator-devnet-canton.ledger-test.com",
26
+ nodeId: "ledger-live-devnet-prd",
27
+ gatewayUrl: "https://canton-gateway.api.live.ledger-test.com",
28
+ minReserve: 0,
29
+ useGateway: true,
30
+ nativeInstrumentId:
31
+ "6e9fc50fb94e56751b49f09ba2dc84da53a9d7cff08115ebb4f6b7a12d0c990c:Splice.Amulet:Amulet",
32
+ },
33
+ },
34
+ config_currency_canton_network_localnet: {
35
+ type: "object",
36
+ default: {
37
+ status: {
38
+ type: "active",
39
+ },
40
+ nodeUrl: "http://localhost:2975/v2",
41
+ nodeId: undefined,
42
+ gatewayUrl: undefined,
43
+ minReserve: 0,
44
+ useGateway: false,
10
45
  },
11
46
  },
12
47
  };