@bit.rhplus/data 0.0.28 → 0.0.30

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.
@@ -1,4 +1,4 @@
1
- export function useApiQuery(key: any, api: any, params: {} | undefined, accessToken: any, returnFn: any, ui?: boolean): {
1
+ export function useApiQuery(key: any, api: any, params: {} | undefined, accessToken: any, returnFn: any, ui?: boolean, staleTimeMinute?: number): {
2
2
  updateData: (updateFn: any) => void;
3
3
  data: any;
4
4
  error: Error;
@@ -22,6 +22,7 @@ export function useApiQuery(key: any, api: any, params: {} | undefined, accessTo
22
22
  isPaused: boolean;
23
23
  isRefetching: boolean;
24
24
  isStale: boolean;
25
+ isEnabled: boolean;
25
26
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
26
27
  fetchStatus: import("@tanstack/react-query").FetchStatus;
27
28
  promise: Promise<any>;
@@ -49,6 +50,7 @@ export function useApiQuery(key: any, api: any, params: {} | undefined, accessTo
49
50
  isPaused: boolean;
50
51
  isRefetching: boolean;
51
52
  isStale: boolean;
53
+ isEnabled: boolean;
52
54
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
53
55
  fetchStatus: import("@tanstack/react-query").FetchStatus;
54
56
  promise: Promise<any>;
@@ -76,6 +78,7 @@ export function useApiQuery(key: any, api: any, params: {} | undefined, accessTo
76
78
  isPaused: boolean;
77
79
  isRefetching: boolean;
78
80
  isStale: boolean;
81
+ isEnabled: boolean;
79
82
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
80
83
  fetchStatus: import("@tanstack/react-query").FetchStatus;
81
84
  promise: Promise<any>;
@@ -103,6 +106,7 @@ export function useApiQuery(key: any, api: any, params: {} | undefined, accessTo
103
106
  isPaused: boolean;
104
107
  isRefetching: boolean;
105
108
  isStale: boolean;
109
+ isEnabled: boolean;
106
110
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
107
111
  fetchStatus: import("@tanstack/react-query").FetchStatus;
108
112
  promise: Promise<any>;
@@ -130,6 +134,7 @@ export function useApiQuery(key: any, api: any, params: {} | undefined, accessTo
130
134
  isPaused: boolean;
131
135
  isRefetching: boolean;
132
136
  isStale: boolean;
137
+ isEnabled: boolean;
133
138
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
134
139
  fetchStatus: import("@tanstack/react-query").FetchStatus;
135
140
  promise: Promise<any>;
@@ -157,6 +162,7 @@ export function useApiQuery(key: any, api: any, params: {} | undefined, accessTo
157
162
  isPaused: boolean;
158
163
  isRefetching: boolean;
159
164
  isStale: boolean;
165
+ isEnabled: boolean;
160
166
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
161
167
  fetchStatus: import("@tanstack/react-query").FetchStatus;
162
168
  promise: Promise<any>;
@@ -185,6 +191,7 @@ export function useApiQuerySilence(key: any, api: any, params: {} | undefined, a
185
191
  isPaused: boolean;
186
192
  isRefetching: boolean;
187
193
  isStale: boolean;
194
+ isEnabled: boolean;
188
195
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
189
196
  fetchStatus: import("@tanstack/react-query").FetchStatus;
190
197
  promise: Promise<any>;
@@ -212,6 +219,7 @@ export function useApiQuerySilence(key: any, api: any, params: {} | undefined, a
212
219
  isPaused: boolean;
213
220
  isRefetching: boolean;
214
221
  isStale: boolean;
222
+ isEnabled: boolean;
215
223
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
216
224
  fetchStatus: import("@tanstack/react-query").FetchStatus;
217
225
  promise: Promise<any>;
@@ -239,6 +247,7 @@ export function useApiQuerySilence(key: any, api: any, params: {} | undefined, a
239
247
  isPaused: boolean;
240
248
  isRefetching: boolean;
241
249
  isStale: boolean;
250
+ isEnabled: boolean;
242
251
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
243
252
  fetchStatus: import("@tanstack/react-query").FetchStatus;
244
253
  promise: Promise<any>;
@@ -266,6 +275,7 @@ export function useApiQuerySilence(key: any, api: any, params: {} | undefined, a
266
275
  isPaused: boolean;
267
276
  isRefetching: boolean;
268
277
  isStale: boolean;
278
+ isEnabled: boolean;
269
279
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
270
280
  fetchStatus: import("@tanstack/react-query").FetchStatus;
271
281
  promise: Promise<any>;
@@ -293,6 +303,7 @@ export function useApiQuerySilence(key: any, api: any, params: {} | undefined, a
293
303
  isPaused: boolean;
294
304
  isRefetching: boolean;
295
305
  isStale: boolean;
306
+ isEnabled: boolean;
296
307
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
297
308
  fetchStatus: import("@tanstack/react-query").FetchStatus;
298
309
  promise: Promise<any>;
@@ -320,6 +331,7 @@ export function useApiQuerySilence(key: any, api: any, params: {} | undefined, a
320
331
  isPaused: boolean;
321
332
  isRefetching: boolean;
322
333
  isStale: boolean;
334
+ isEnabled: boolean;
323
335
  refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<any, Error>>;
324
336
  fetchStatus: import("@tanstack/react-query").FetchStatus;
325
337
  promise: Promise<any>;
@@ -1,11 +1,12 @@
1
1
  import { useQuery, useQueryClient } from '@tanstack/react-query';
2
2
  import useData from '.';
3
- export const useApiQuery = (key, api, params = {}, accessToken, returnFn, ui = true) => {
3
+ export const useApiQuery = (key, api, params = {}, accessToken, returnFn, ui = true, staleTimeMinute = 0) => {
4
4
  const { fetchData, fetchDataUIAsync } = useData();
5
5
  const queryClient = useQueryClient();
6
6
  return {
7
7
  ...useQuery({
8
8
  queryKey: [key], // Přidáváme params do queryKey
9
+ staleTime: staleTimeMinute * 60 * 1000,
9
10
  queryFn: async () => {
10
11
  const response = ui
11
12
  ? await fetchDataUIAsync(api, params, accessToken)
@@ -1 +1 @@
1
- {"version":3,"file":"reactQuery.js","sourceRoot":"","sources":["../reactQuery.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,OAAO,MAAM,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE;IAErF,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO;QACL,GAAG,QAAQ,CAAC;YACV,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,+BAA+B;YAChD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,QAAQ,GAAG,EAAE;oBACjB,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC;oBAClD,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAE9C,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;SACF,CAAC;QACF,sCAAsC;QACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC1C,6BAA6B;gBAC7B,IAAI,CAAC,OAAO;oBAAE,OAAO,OAAO,CAAC;gBAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAC/E,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;IAChD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,GAAG,CAAC;QACf,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC1C,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"reactQuery.js","sourceRoot":"","sources":["../reactQuery.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,OAAO,MAAM,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,eAAe,GAAG,CAAC,EAAE,EAAE;IAC1G,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO;QACL,GAAG,QAAQ,CAAC;YACV,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,+BAA+B;YAChD,SAAS,EAAE,eAAe,GAAG,EAAE,GAAG,IAAI;YACtC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,QAAQ,GAAG,EAAE;oBACjB,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC;oBAClD,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAE9C,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;SACF,CAAC;QACF,sCAAsC;QACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC1C,6BAA6B;gBAC7B,IAAI,CAAC,OAAO;oBAAE,OAAO,OAAO,CAAC;gBAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAC/E,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;IAChD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,GAAG,CAAC;QACf,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC1C,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -20,5 +20,27 @@ export function useFileDownload(options?: {}): {
20
20
  fileName?: undefined;
21
21
  size?: undefined;
22
22
  }>;
23
+ fetchFile: (api: any, data: any, fileName?: null) => Promise<{
24
+ success: boolean;
25
+ error: string;
26
+ blob?: undefined;
27
+ fileName?: undefined;
28
+ size?: undefined;
29
+ errorMessage?: undefined;
30
+ } | {
31
+ success: boolean;
32
+ blob: any;
33
+ fileName: null;
34
+ size: any;
35
+ error?: undefined;
36
+ errorMessage?: undefined;
37
+ } | {
38
+ success: boolean;
39
+ error: unknown;
40
+ errorMessage: string;
41
+ blob?: undefined;
42
+ fileName?: undefined;
43
+ size?: undefined;
44
+ }>;
23
45
  reset: () => void;
24
46
  };
@@ -118,6 +118,73 @@ export const useFileDownload = (options = {}) => {
118
118
  accessToken,
119
119
  fetchData,
120
120
  ]);
121
+ const fetchFile = useCallback(async (api, data, fileName = null) => {
122
+ if (isDownloading) {
123
+ console.warn('Fetch already in progress');
124
+ return { success: false, error: 'Fetch already in progress' };
125
+ }
126
+ setIsDownloading(true);
127
+ setError('');
128
+ // Notify o začátku načítání
129
+ onDownloadStart?.();
130
+ onLoadingChange?.(true);
131
+ try {
132
+ const response = await fetchData(api, data, accessToken);
133
+ const blob = response.data;
134
+ // Získáme název souboru z Content-Disposition hlavičky nebo použijeme předaný název
135
+ let fetchedFileName = fileName;
136
+ // Zkus získat filename ze serverových headers
137
+ if (response.headers) {
138
+ let contentDisposition;
139
+ // Různé způsoby jak získat header (záleží na struktuře response)
140
+ if (typeof response.headers.get === 'function') {
141
+ contentDisposition = response.headers.get('content-disposition');
142
+ }
143
+ else if (response.headers['content-disposition']) {
144
+ contentDisposition = response.headers['content-disposition'];
145
+ }
146
+ if (contentDisposition) {
147
+ const fileNameMatch = contentDisposition.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);
148
+ if (fileNameMatch && fileNameMatch[1]) {
149
+ fetchedFileName = fileNameMatch[1].replace(/['"]/g, '');
150
+ }
151
+ }
152
+ }
153
+ // Success callback
154
+ onDownloadSuccess?.(fetchedFileName, blob.size);
155
+ return {
156
+ success: true,
157
+ blob: blob,
158
+ fileName: fetchedFileName,
159
+ size: blob.size,
160
+ };
161
+ }
162
+ catch (err) {
163
+ console.error('Chyba při načítání souboru:', err);
164
+ const errorMessage = `Chyba při načítání souboru: ${err.message}`;
165
+ setError(errorMessage);
166
+ onDownloadError?.(err, errorMessage);
167
+ return {
168
+ success: false,
169
+ error: err,
170
+ errorMessage,
171
+ };
172
+ }
173
+ finally {
174
+ setIsDownloading(false);
175
+ onDownloadEnd?.();
176
+ onLoadingChange?.(false);
177
+ }
178
+ }, [
179
+ isDownloading,
180
+ onDownloadStart,
181
+ onDownloadEnd,
182
+ onDownloadSuccess,
183
+ onDownloadError,
184
+ onLoadingChange,
185
+ accessToken,
186
+ fetchData,
187
+ ]);
121
188
  const reset = useCallback(() => {
122
189
  setError('');
123
190
  }, []);
@@ -125,6 +192,7 @@ export const useFileDownload = (options = {}) => {
125
192
  isDownloading,
126
193
  error,
127
194
  downloadFile,
195
+ fetchFile,
128
196
  reset,
129
197
  };
130
198
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useFileDownload.js","sourceRoot":"","sources":["../useFileDownload.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFileDownload.js","sourceRoot":"","sources":["../useFileDownload.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@bit.rhplus/data",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "homepage": "https://bit.cloud/remote-scope/data",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "remote-scope",
8
8
  "name": "data",
9
- "version": "0.0.28"
9
+ "version": "0.0.30"
10
10
  },
11
11
  "dependencies": {
12
12
  "@tanstack/react-query": "^5.66.9",
13
- "@bit.rhplus/api": "0.0.27"
13
+ "@bit.rhplus/api": "0.0.28"
14
14
  },
15
15
  "devDependencies": {
16
- "@teambit/react.react-env": "1.0.129"
16
+ "@teambit/react.react-env": "1.0.132"
17
17
  },
18
18
  "peerDependencies": {
19
19
  "react": "^17.0.0 || ^18.0.0",
package/reactQuery.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { useQuery, useQueryClient } from '@tanstack/react-query';
2
2
  import useData from '.';
3
3
 
4
- export const useApiQuery = (key, api, params = {}, accessToken, returnFn, ui = true) => {
5
-
4
+ export const useApiQuery = (key, api, params = {}, accessToken, returnFn, ui = true, staleTimeMinute = 0) => {
6
5
  const { fetchData, fetchDataUIAsync } = useData();
7
6
  const queryClient = useQueryClient();
8
7
 
9
8
  return {
10
9
  ...useQuery({
11
10
  queryKey: [key], // Přidáváme params do queryKey
11
+ staleTime: staleTimeMinute * 60 * 1000,
12
12
  queryFn: async () => {
13
13
  const response = ui
14
14
  ? await fetchDataUIAsync(api, params, accessToken)
@@ -144,6 +144,84 @@ export const useFileDownload = (options = {}) => {
144
144
  ]
145
145
  );
146
146
 
147
+ const fetchFile = useCallback(
148
+ async (api, data, fileName = null) => {
149
+ if (isDownloading) {
150
+ console.warn('Fetch already in progress');
151
+ return { success: false, error: 'Fetch already in progress' };
152
+ }
153
+ setIsDownloading(true);
154
+ setError('');
155
+ // Notify o začátku načítání
156
+ onDownloadStart?.();
157
+ onLoadingChange?.(true);
158
+
159
+ try {
160
+ const response = await fetchData(api, data, accessToken);
161
+ const blob = response.data;
162
+
163
+ // Získáme název souboru z Content-Disposition hlavičky nebo použijeme předaný název
164
+ let fetchedFileName = fileName;
165
+
166
+ // Zkus získat filename ze serverových headers
167
+ if (response.headers) {
168
+ let contentDisposition;
169
+
170
+ // Různé způsoby jak získat header (záleží na struktuře response)
171
+ if (typeof response.headers.get === 'function') {
172
+ contentDisposition = response.headers.get('content-disposition');
173
+ } else if (response.headers['content-disposition']) {
174
+ contentDisposition = response.headers['content-disposition'];
175
+ }
176
+
177
+ if (contentDisposition) {
178
+ const fileNameMatch = contentDisposition.match(
179
+ /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/
180
+ );
181
+ if (fileNameMatch && fileNameMatch[1]) {
182
+ fetchedFileName = fileNameMatch[1].replace(/['"]/g, '');
183
+ }
184
+ }
185
+ }
186
+
187
+ // Success callback
188
+ onDownloadSuccess?.(fetchedFileName, blob.size);
189
+
190
+ return {
191
+ success: true,
192
+ blob: blob,
193
+ fileName: fetchedFileName,
194
+ size: blob.size,
195
+ };
196
+ } catch (err) {
197
+ console.error('Chyba při načítání souboru:', err);
198
+ const errorMessage = `Chyba při načítání souboru: ${err.message}`;
199
+ setError(errorMessage);
200
+ onDownloadError?.(err, errorMessage);
201
+
202
+ return {
203
+ success: false,
204
+ error: err,
205
+ errorMessage,
206
+ };
207
+ } finally {
208
+ setIsDownloading(false);
209
+ onDownloadEnd?.();
210
+ onLoadingChange?.(false);
211
+ }
212
+ },
213
+ [
214
+ isDownloading,
215
+ onDownloadStart,
216
+ onDownloadEnd,
217
+ onDownloadSuccess,
218
+ onDownloadError,
219
+ onLoadingChange,
220
+ accessToken,
221
+ fetchData,
222
+ ]
223
+ );
224
+
147
225
  const reset = useCallback(() => {
148
226
  setError('');
149
227
  }, []);
@@ -152,6 +230,7 @@ export const useFileDownload = (options = {}) => {
152
230
  isDownloading,
153
231
  error,
154
232
  downloadFile,
233
+ fetchFile,
155
234
  reset,
156
235
  };
157
236
  };