@ventlio/tanstack-query 0.2.24 → 0.2.26
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/config/index.d.ts +1 -0
- package/dist/config/useQueryHeaders.d.ts +2 -0
- package/dist/config/useQueryHeaders.js +25 -0
- package/dist/{contexts → config}/useQueryHeaders.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -72
- package/dist/index.mjs.map +1 -1
- package/dist/model/useKeyTrackerModel.js +3 -3
- package/dist/queries/useDeleteRequest.js +8 -6
- package/dist/queries/useDeleteRequest.js.map +1 -1
- package/dist/queries/useGetRequest.js +13 -12
- package/dist/queries/useGetRequest.js.map +1 -1
- package/dist/queries/usePatchRequest.js +30 -26
- package/dist/queries/usePatchRequest.js.map +1 -1
- package/dist/queries/usePostRequest.js +33 -29
- package/dist/queries/usePostRequest.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/config/index.ts +1 -0
- package/src/config/useQueryHeaders.ts +24 -0
- package/src/index.ts +0 -1
- package/src/queries/useDeleteRequest.ts +7 -3
- package/src/queries/useGetRequest.ts +7 -3
- package/src/queries/usePatchRequest.ts +31 -24
- package/src/queries/usePostRequest.ts +35 -28
- package/src/types/index.ts +1 -1
- package/dist/contexts/QueryClientRequestProvider.d.ts +0 -12
- package/dist/contexts/QueryClientRequestProvider.js +0 -24
- package/dist/contexts/QueryClientRequestProvider.js.map +0 -1
- package/dist/contexts/index.d.ts +0 -2
- package/dist/contexts/useQueryHeaders.d.ts +0 -2
- package/dist/contexts/useQueryHeaders.js +0 -11
- package/src/contexts/QueryClientRequestProvider.tsx +0 -48
- package/src/contexts/index.ts +0 -2
- package/src/contexts/useQueryHeaders.ts +0 -7
package/dist/config/index.d.ts
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var reactQuery = require('@tanstack/react-query');
|
|
4
|
+
|
|
5
|
+
const useQueryHeaders = () => {
|
|
6
|
+
const queryClient = reactQuery.useQueryClient();
|
|
7
|
+
const getHeadersAsync = async () => {
|
|
8
|
+
return queryClient.ensureQueryData({
|
|
9
|
+
queryKey: ['config'],
|
|
10
|
+
queryFn: () => {
|
|
11
|
+
return queryClient.getQueryData(['config']);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
const setQueryHeaders = (newHeaders) => {
|
|
16
|
+
queryClient.setQueryData(['config'], (config) => {
|
|
17
|
+
const newConfig = { ...config, headers: newHeaders };
|
|
18
|
+
return newConfig;
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return { setQueryHeaders, getHeadersAsync };
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.useQueryHeaders = useQueryHeaders;
|
|
25
|
+
//# sourceMappingURL=useQueryHeaders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryHeaders.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useQueryHeaders.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var useEnvironmentVariables = require('./config/useEnvironmentVariables.js');
|
|
4
4
|
var useQueryConfig = require('./config/useQueryConfig.js');
|
|
5
|
-
var
|
|
6
|
-
var useQueryHeaders = require('./contexts/useQueryHeaders.js');
|
|
5
|
+
var useQueryHeaders = require('./config/useQueryHeaders.js');
|
|
7
6
|
var scrollToTop = require('./helpers/scrollToTop.js');
|
|
8
7
|
var useKeyTrackerModel = require('./model/useKeyTrackerModel.js');
|
|
9
8
|
var useQueryModel = require('./model/useQueryModel.js');
|
|
@@ -22,8 +21,6 @@ var transformer = require('./request/transformer.js');
|
|
|
22
21
|
|
|
23
22
|
exports.useEnvironmentVariables = useEnvironmentVariables.useEnvironmentVariables;
|
|
24
23
|
exports.useQueryConfig = useQueryConfig.useQueryConfig;
|
|
25
|
-
exports.QueryClientRequestProvider = QueryClientRequestProvider.QueryClientRequestProvider;
|
|
26
|
-
exports.RequestHeaderProvider = QueryClientRequestProvider.RequestHeaderProvider;
|
|
27
24
|
exports.useQueryHeaders = useQueryHeaders.useQueryHeaders;
|
|
28
25
|
exports.scrollToTop = scrollToTop.scrollToTop;
|
|
29
26
|
exports.useKeyTrackerModel = useKeyTrackerModel.useKeyTrackerModel;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useQueryClient,
|
|
2
|
-
import
|
|
1
|
+
import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
|
|
2
|
+
import { useState, useMemo, useEffect, startTransition } from 'react';
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
|
|
5
5
|
const useEnvironmentVariables = () => {
|
|
@@ -17,24 +17,23 @@ const useQueryConfig = () => {
|
|
|
17
17
|
return { headers };
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const RequestHeaderProvider = createContext({
|
|
21
|
-
headers: {},
|
|
22
|
-
setHeaders: (_newHeaders) => {
|
|
23
|
-
//
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
const QueryClientRequestProvider = ({ client, children, }) => {
|
|
27
|
-
const [headers, updateHeaders] = useState({});
|
|
28
|
-
const setHeaders = useCallback((newHeaders) => {
|
|
29
|
-
updateHeaders(newHeaders);
|
|
30
|
-
}, []);
|
|
31
|
-
const requestContextValue = useMemo(() => ({ headers, setHeaders }), [headers, setHeaders]);
|
|
32
|
-
return (React.createElement(QueryClientProvider, { client: client },
|
|
33
|
-
React.createElement(RequestHeaderProvider.Provider, { value: requestContextValue }, children)));
|
|
34
|
-
};
|
|
35
|
-
|
|
36
20
|
const useQueryHeaders = () => {
|
|
37
|
-
|
|
21
|
+
const queryClient = useQueryClient();
|
|
22
|
+
const getHeadersAsync = async () => {
|
|
23
|
+
return queryClient.ensureQueryData({
|
|
24
|
+
queryKey: ['config'],
|
|
25
|
+
queryFn: () => {
|
|
26
|
+
return queryClient.getQueryData(['config']);
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const setQueryHeaders = (newHeaders) => {
|
|
31
|
+
queryClient.setQueryData(['config'], (config) => {
|
|
32
|
+
const newConfig = { ...config, headers: newHeaders };
|
|
33
|
+
return newConfig;
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
return { setQueryHeaders, getHeadersAsync };
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
const scrollToTop = () => {
|
|
@@ -179,9 +178,12 @@ const useDeleteRequest = () => {
|
|
|
179
178
|
const [requestPath, updateDeletePath] = useState('');
|
|
180
179
|
const [options, setOptions] = useState();
|
|
181
180
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
182
|
-
const {
|
|
181
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
183
182
|
const query = useQuery([requestPath, {}], () => new Promise((res, rej) => {
|
|
184
183
|
setTimeout(async () => {
|
|
184
|
+
// get request headers
|
|
185
|
+
const headers = (await getHeadersAsync())
|
|
186
|
+
.headers;
|
|
185
187
|
const postResponse = await makeRequest({
|
|
186
188
|
path: requestPath,
|
|
187
189
|
headers,
|
|
@@ -222,11 +224,13 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
222
224
|
const [options, setOptions] = useState(queryOptions);
|
|
223
225
|
const [page, setPage] = useState(1);
|
|
224
226
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
225
|
-
const {
|
|
227
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
226
228
|
let queryClient = useQueryClient();
|
|
227
229
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
228
230
|
queryClient = useMemo(() => queryClient, []);
|
|
229
231
|
const sendRequest = async (res, rej) => {
|
|
232
|
+
// get request headers
|
|
233
|
+
const headers = (await getHeadersAsync()).headers;
|
|
230
234
|
const postResponse = await makeRequest({
|
|
231
235
|
path: requestPath,
|
|
232
236
|
headers,
|
|
@@ -319,31 +323,36 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
319
323
|
|
|
320
324
|
const usePatchRequest = ({ path }) => {
|
|
321
325
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
322
|
-
const {
|
|
326
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
323
327
|
// register post mutation
|
|
324
328
|
const mutation = useMutation((postData) => new Promise((res, rej) => {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
329
|
+
return (async () => {
|
|
330
|
+
// get request headers
|
|
331
|
+
const headers = (await getHeadersAsync())
|
|
332
|
+
.headers;
|
|
333
|
+
makeRequest({
|
|
334
|
+
path: path,
|
|
335
|
+
body: postData,
|
|
336
|
+
method: HttpMethod.PATCH,
|
|
337
|
+
headers,
|
|
338
|
+
baseURL: API_URL,
|
|
339
|
+
timeout: TIMEOUT,
|
|
340
|
+
}).then((postResponse) => {
|
|
341
|
+
if (postResponse.status) {
|
|
342
|
+
// scroll to top after success
|
|
343
|
+
scrollToTop();
|
|
344
|
+
res(postResponse);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
// scroll to top after error
|
|
348
|
+
window.scrollTo({
|
|
349
|
+
top: 0,
|
|
350
|
+
behavior: 'smooth',
|
|
351
|
+
});
|
|
352
|
+
rej(postResponse);
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
})();
|
|
347
356
|
}));
|
|
348
357
|
const patch = async (postData, options) => {
|
|
349
358
|
return mutation.mutateAsync(postData, options);
|
|
@@ -353,35 +362,40 @@ const usePatchRequest = ({ path }) => {
|
|
|
353
362
|
|
|
354
363
|
const usePostRequest = ({ path, isFormData = false, }) => {
|
|
355
364
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
356
|
-
const {
|
|
365
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
357
366
|
// register post mutation
|
|
358
367
|
const mutation = useMutation(async (postData) => new Promise((res, rej) => {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
368
|
+
return (async () => {
|
|
369
|
+
// get request headers
|
|
370
|
+
const headers = (await getHeadersAsync())
|
|
371
|
+
.headers;
|
|
372
|
+
makeRequest({
|
|
373
|
+
path: path,
|
|
374
|
+
body: postData,
|
|
375
|
+
method: HttpMethod.POST,
|
|
376
|
+
isFormData,
|
|
377
|
+
headers,
|
|
378
|
+
baseURL: API_URL,
|
|
379
|
+
timeout: TIMEOUT,
|
|
380
|
+
}).then((postResponse) => {
|
|
381
|
+
if (postResponse.status) {
|
|
382
|
+
// scroll to top after success
|
|
383
|
+
window.scrollTo({
|
|
384
|
+
top: 0,
|
|
385
|
+
behavior: 'smooth',
|
|
386
|
+
});
|
|
387
|
+
res(postResponse);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
// scroll to top after error
|
|
391
|
+
window.scrollTo({
|
|
392
|
+
top: 0,
|
|
393
|
+
behavior: 'smooth',
|
|
394
|
+
});
|
|
395
|
+
rej(postResponse);
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
})();
|
|
385
399
|
}));
|
|
386
400
|
const post = async (postData, options) => {
|
|
387
401
|
return mutation.mutateAsync(postData, options);
|
|
@@ -389,5 +403,5 @@ const usePostRequest = ({ path, isFormData = false, }) => {
|
|
|
389
403
|
return { post, ...mutation };
|
|
390
404
|
};
|
|
391
405
|
|
|
392
|
-
export { ContentType, HttpMethod,
|
|
406
|
+
export { ContentType, HttpMethod, axiosInstance, buildFormData, errorTransformer, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useEnvironmentVariables, useGetRequest, useKeyTrackerModel, usePatchRequest, usePostRequest, useQueryConfig, useQueryHeaders, useQueryModel, useRefetchQuery };
|
|
393
407
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var
|
|
4
|
+
var react = require('react');
|
|
5
5
|
|
|
6
6
|
const useKeyTrackerModel = (keyTracker) => {
|
|
7
7
|
const queryClient = reactQuery.useQueryClient();
|
|
8
|
-
const [data, setData] =
|
|
9
|
-
const [queryKey, setQueryKey] =
|
|
8
|
+
const [data, setData] = react.useState();
|
|
9
|
+
const [queryKey, setQueryKey] = react.useState();
|
|
10
10
|
const getQueryKey = (innerKeyTracker) => {
|
|
11
11
|
const key = queryClient.getQueryData([
|
|
12
12
|
innerKeyTracker ?? keyTracker,
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var
|
|
4
|
+
var react = require('react');
|
|
5
5
|
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
6
|
-
require('../
|
|
7
|
-
var useQueryHeaders = require('../contexts/useQueryHeaders.js');
|
|
6
|
+
var useQueryHeaders = require('../config/useQueryHeaders.js');
|
|
8
7
|
require('axios');
|
|
9
8
|
var makeRequest = require('../request/make-request.js');
|
|
10
9
|
var request_enum = require('../request/request.enum.js');
|
|
11
10
|
|
|
12
11
|
const useDeleteRequest = () => {
|
|
13
|
-
const [requestPath, updateDeletePath] =
|
|
14
|
-
const [options, setOptions] =
|
|
12
|
+
const [requestPath, updateDeletePath] = react.useState('');
|
|
13
|
+
const [options, setOptions] = react.useState();
|
|
15
14
|
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
16
|
-
const {
|
|
15
|
+
const { getHeadersAsync } = useQueryHeaders.useQueryHeaders();
|
|
17
16
|
const query = reactQuery.useQuery([requestPath, {}], () => new Promise((res, rej) => {
|
|
18
17
|
setTimeout(async () => {
|
|
18
|
+
// get request headers
|
|
19
|
+
const headers = (await getHeadersAsync())
|
|
20
|
+
.headers;
|
|
19
21
|
const postResponse = await makeRequest.makeRequest({
|
|
20
22
|
path: requestPath,
|
|
21
23
|
headers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var
|
|
4
|
+
var react = require('react');
|
|
5
5
|
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
6
|
-
require('../
|
|
7
|
-
var useQueryHeaders = require('../contexts/useQueryHeaders.js');
|
|
6
|
+
var useQueryHeaders = require('../config/useQueryHeaders.js');
|
|
8
7
|
require('axios');
|
|
9
8
|
var makeRequest = require('../request/make-request.js');
|
|
10
9
|
require('../request/request.enum.js');
|
|
11
10
|
|
|
12
11
|
const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
13
|
-
const [requestPath, updatePath] =
|
|
14
|
-
const [options, setOptions] =
|
|
15
|
-
const [page, setPage] =
|
|
12
|
+
const [requestPath, updatePath] = react.useState(path);
|
|
13
|
+
const [options, setOptions] = react.useState(queryOptions);
|
|
14
|
+
const [page, setPage] = react.useState(1);
|
|
16
15
|
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
17
|
-
const {
|
|
16
|
+
const { getHeadersAsync } = useQueryHeaders.useQueryHeaders();
|
|
18
17
|
let queryClient = reactQuery.useQueryClient();
|
|
19
18
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
20
|
-
queryClient =
|
|
19
|
+
queryClient = react.useMemo(() => queryClient, []);
|
|
21
20
|
const sendRequest = async (res, rej) => {
|
|
21
|
+
// get request headers
|
|
22
|
+
const headers = (await getHeadersAsync()).headers;
|
|
22
23
|
const postResponse = await makeRequest.makeRequest({
|
|
23
24
|
path: requestPath,
|
|
24
25
|
headers,
|
|
@@ -38,12 +39,12 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
38
39
|
enabled: load,
|
|
39
40
|
...options,
|
|
40
41
|
});
|
|
41
|
-
|
|
42
|
+
react.useEffect(() => {
|
|
42
43
|
if (path) {
|
|
43
44
|
updatePath(path);
|
|
44
45
|
}
|
|
45
46
|
}, [path]);
|
|
46
|
-
|
|
47
|
+
react.useEffect(() => {
|
|
47
48
|
if (keyTracker) {
|
|
48
49
|
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|
|
49
50
|
}
|
|
@@ -83,12 +84,12 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
83
84
|
updatePath(constructPaginationLink(requestPath, pageNumber));
|
|
84
85
|
};
|
|
85
86
|
const updatedPathAsync = async (link) => {
|
|
86
|
-
|
|
87
|
+
react.startTransition(() => {
|
|
87
88
|
updatePath(link);
|
|
88
89
|
});
|
|
89
90
|
};
|
|
90
91
|
const setOptionsAsync = async (fetchOptions) => {
|
|
91
|
-
|
|
92
|
+
react.startTransition(() => {
|
|
92
93
|
setOptions(fetchOptions);
|
|
93
94
|
});
|
|
94
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,41 +1,45 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
|
+
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
5
|
+
var useQueryHeaders = require('../config/useQueryHeaders.js');
|
|
4
6
|
var scrollToTop = require('../helpers/scrollToTop.js');
|
|
5
7
|
require('axios');
|
|
6
8
|
var makeRequest = require('../request/make-request.js');
|
|
7
9
|
var request_enum = require('../request/request.enum.js');
|
|
8
|
-
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
9
|
-
require('../contexts/QueryClientRequestProvider.js');
|
|
10
|
-
var useQueryHeaders = require('../contexts/useQueryHeaders.js');
|
|
11
10
|
|
|
12
11
|
const usePatchRequest = ({ path }) => {
|
|
13
12
|
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
14
|
-
const {
|
|
13
|
+
const { getHeadersAsync } = useQueryHeaders.useQueryHeaders();
|
|
15
14
|
// register post mutation
|
|
16
15
|
const mutation = reactQuery.useMutation((postData) => new Promise((res, rej) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
16
|
+
return (async () => {
|
|
17
|
+
// get request headers
|
|
18
|
+
const headers = (await getHeadersAsync())
|
|
19
|
+
.headers;
|
|
20
|
+
makeRequest.makeRequest({
|
|
21
|
+
path: path,
|
|
22
|
+
body: postData,
|
|
23
|
+
method: request_enum.HttpMethod.PATCH,
|
|
24
|
+
headers,
|
|
25
|
+
baseURL: API_URL,
|
|
26
|
+
timeout: TIMEOUT,
|
|
27
|
+
}).then((postResponse) => {
|
|
28
|
+
if (postResponse.status) {
|
|
29
|
+
// scroll to top after success
|
|
30
|
+
scrollToTop.scrollToTop();
|
|
31
|
+
res(postResponse);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// scroll to top after error
|
|
35
|
+
window.scrollTo({
|
|
36
|
+
top: 0,
|
|
37
|
+
behavior: 'smooth',
|
|
38
|
+
});
|
|
39
|
+
rej(postResponse);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
})();
|
|
39
43
|
}));
|
|
40
44
|
const patch = async (postData, options) => {
|
|
41
45
|
return mutation.mutateAsync(postData, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,43 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
4
|
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
5
|
-
require('../
|
|
6
|
-
var useQueryHeaders = require('../contexts/useQueryHeaders.js');
|
|
5
|
+
var useQueryHeaders = require('../config/useQueryHeaders.js');
|
|
7
6
|
require('axios');
|
|
8
7
|
var makeRequest = require('../request/make-request.js');
|
|
9
8
|
var request_enum = require('../request/request.enum.js');
|
|
10
9
|
|
|
11
10
|
const usePostRequest = ({ path, isFormData = false, }) => {
|
|
12
11
|
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
13
|
-
const {
|
|
12
|
+
const { getHeadersAsync } = useQueryHeaders.useQueryHeaders();
|
|
14
13
|
// register post mutation
|
|
15
14
|
const mutation = reactQuery.useMutation(async (postData) => new Promise((res, rej) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
15
|
+
return (async () => {
|
|
16
|
+
// get request headers
|
|
17
|
+
const headers = (await getHeadersAsync())
|
|
18
|
+
.headers;
|
|
19
|
+
makeRequest.makeRequest({
|
|
20
|
+
path: path,
|
|
21
|
+
body: postData,
|
|
22
|
+
method: request_enum.HttpMethod.POST,
|
|
23
|
+
isFormData,
|
|
24
|
+
headers,
|
|
25
|
+
baseURL: API_URL,
|
|
26
|
+
timeout: TIMEOUT,
|
|
27
|
+
}).then((postResponse) => {
|
|
28
|
+
if (postResponse.status) {
|
|
29
|
+
// scroll to top after success
|
|
30
|
+
window.scrollTo({
|
|
31
|
+
top: 0,
|
|
32
|
+
behavior: 'smooth',
|
|
33
|
+
});
|
|
34
|
+
res(postResponse);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// scroll to top after error
|
|
38
|
+
window.scrollTo({
|
|
39
|
+
top: 0,
|
|
40
|
+
behavior: 'smooth',
|
|
41
|
+
});
|
|
42
|
+
rej(postResponse);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
})();
|
|
42
46
|
}));
|
|
43
47
|
const post = async (postData, options) => {
|
|
44
48
|
return mutation.mutateAsync(postData, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export interface TanstackQueryConfig {
|
|
|
3
3
|
headers: RawAxiosRequestHeaders;
|
|
4
4
|
}
|
|
5
5
|
export interface IUseQueryHeaders {
|
|
6
|
-
|
|
6
|
+
getHeadersAsync: () => Promise<TanstackQueryConfig>;
|
|
7
7
|
setQueryHeaders: (header: TanstackQueryConfig['headers']) => void;
|
|
8
8
|
}
|
package/package.json
CHANGED
package/src/config/index.ts
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
2
|
+
import type { IUseQueryHeaders, TanstackQueryConfig } from '../types';
|
|
3
|
+
|
|
4
|
+
export const useQueryHeaders = (): IUseQueryHeaders => {
|
|
5
|
+
const queryClient = useQueryClient();
|
|
6
|
+
|
|
7
|
+
const getHeadersAsync = async (): Promise<TanstackQueryConfig> => {
|
|
8
|
+
return queryClient.ensureQueryData({
|
|
9
|
+
queryKey: ['config'],
|
|
10
|
+
queryFn: () => {
|
|
11
|
+
return queryClient.getQueryData(['config']);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const setQueryHeaders = (newHeaders: TanstackQueryConfig['headers']) => {
|
|
17
|
+
queryClient.setQueryData<TanstackQueryConfig>(['config'], (config): any => {
|
|
18
|
+
const newConfig = { ...config, headers: newHeaders };
|
|
19
|
+
return newConfig;
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
return { setQueryHeaders, getHeadersAsync };
|
|
24
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import type { RawAxiosRequestHeaders } from 'axios';
|
|
3
4
|
import { useState } from 'react';
|
|
4
|
-
import { useEnvironmentVariables } from '../config';
|
|
5
|
-
import { useQueryHeaders } from '../contexts';
|
|
5
|
+
import { useEnvironmentVariables, useQueryHeaders } from '../config';
|
|
6
6
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
7
7
|
import { HttpMethod, makeRequest } from '../request';
|
|
8
8
|
|
|
@@ -12,13 +12,17 @@ export const useDeleteRequest = <TResponse>() => {
|
|
|
12
12
|
|
|
13
13
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
14
14
|
|
|
15
|
-
const {
|
|
15
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
16
16
|
|
|
17
17
|
const query = useQuery<any, any, IRequestSuccess<TResponse>>(
|
|
18
18
|
[requestPath, {}],
|
|
19
19
|
() =>
|
|
20
20
|
new Promise<IRequestSuccess<TResponse> | IRequestError>((res, rej) => {
|
|
21
21
|
setTimeout(async () => {
|
|
22
|
+
// get request headers
|
|
23
|
+
const headers: RawAxiosRequestHeaders = (await getHeadersAsync())
|
|
24
|
+
.headers;
|
|
25
|
+
|
|
22
26
|
const postResponse = await makeRequest<TResponse>({
|
|
23
27
|
path: requestPath,
|
|
24
28
|
headers,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import type { RawAxiosRequestHeaders } from 'axios';
|
|
3
4
|
import { startTransition, useEffect, useMemo, useState } from 'react';
|
|
4
|
-
import { useEnvironmentVariables } from '../config';
|
|
5
|
-
|
|
5
|
+
import { useEnvironmentVariables, useQueryHeaders } from '../config';
|
|
6
|
+
|
|
6
7
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
7
8
|
import { makeRequest } from '../request';
|
|
8
9
|
import type { IPagination, TanstackQueryOption } from './queries.interface';
|
|
@@ -23,7 +24,7 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
|
|
|
23
24
|
const [page, setPage] = useState<number>(1);
|
|
24
25
|
|
|
25
26
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
26
|
-
const {
|
|
27
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
27
28
|
|
|
28
29
|
let queryClient = useQueryClient();
|
|
29
30
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -38,6 +39,9 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
|
|
|
38
39
|
) => void,
|
|
39
40
|
rej: (reason?: any) => void
|
|
40
41
|
) => {
|
|
42
|
+
// get request headers
|
|
43
|
+
const headers: RawAxiosRequestHeaders = (await getHeadersAsync()).headers;
|
|
44
|
+
|
|
41
45
|
const postResponse = await makeRequest<TResponse>({
|
|
42
46
|
path: requestPath,
|
|
43
47
|
headers,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { MutateOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { useEnvironmentVariables, useQueryHeaders } from '../config';
|
|
3
4
|
import { scrollToTop } from '../helpers';
|
|
4
5
|
import { HttpMethod, makeRequest } from '../request';
|
|
5
6
|
|
|
6
|
-
import {
|
|
7
|
-
import { useQueryHeaders } from '../contexts';
|
|
7
|
+
import type { RawAxiosRequestHeaders } from 'axios';
|
|
8
8
|
import type {
|
|
9
9
|
IRequestError,
|
|
10
10
|
IRequestSuccess,
|
|
@@ -12,33 +12,40 @@ import type {
|
|
|
12
12
|
|
|
13
13
|
export const usePatchRequest = <TResponse>({ path }: { path: string }) => {
|
|
14
14
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
16
17
|
|
|
17
18
|
// register post mutation
|
|
18
19
|
const mutation = useMutation<IRequestSuccess<TResponse>, IRequestError>(
|
|
19
20
|
(postData: any) =>
|
|
20
21
|
new Promise<IRequestSuccess<TResponse>>((res, rej) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
22
|
+
return (async () => {
|
|
23
|
+
// get request headers
|
|
24
|
+
const headers: RawAxiosRequestHeaders = (await getHeadersAsync())
|
|
25
|
+
.headers;
|
|
26
|
+
|
|
27
|
+
makeRequest<TResponse>({
|
|
28
|
+
path: path,
|
|
29
|
+
body: postData,
|
|
30
|
+
method: HttpMethod.PATCH,
|
|
31
|
+
headers,
|
|
32
|
+
baseURL: API_URL,
|
|
33
|
+
timeout: TIMEOUT,
|
|
34
|
+
}).then((postResponse) => {
|
|
35
|
+
if (postResponse.status) {
|
|
36
|
+
// scroll to top after success
|
|
37
|
+
scrollToTop();
|
|
38
|
+
res(postResponse as IRequestSuccess<TResponse>);
|
|
39
|
+
} else {
|
|
40
|
+
// scroll to top after error
|
|
41
|
+
window.scrollTo({
|
|
42
|
+
top: 0,
|
|
43
|
+
behavior: 'smooth',
|
|
44
|
+
});
|
|
45
|
+
rej(postResponse);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
})();
|
|
42
49
|
})
|
|
43
50
|
);
|
|
44
51
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { MutateOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { useEnvironmentVariables } from '../config';
|
|
4
|
-
|
|
3
|
+
import { useEnvironmentVariables, useQueryHeaders } from '../config';
|
|
4
|
+
|
|
5
|
+
import type { RawAxiosRequestHeaders } from 'axios';
|
|
5
6
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
6
7
|
import { HttpMethod, makeRequest } from '../request';
|
|
7
8
|
|
|
@@ -14,37 +15,43 @@ export const usePostRequest = <TResponse>({
|
|
|
14
15
|
}) => {
|
|
15
16
|
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
16
17
|
|
|
17
|
-
const {
|
|
18
|
+
const { getHeadersAsync } = useQueryHeaders();
|
|
18
19
|
|
|
19
20
|
// register post mutation
|
|
20
21
|
const mutation = useMutation<IRequestSuccess<TResponse>, IRequestError>(
|
|
21
22
|
async (postData: any) =>
|
|
22
23
|
new Promise<IRequestSuccess<TResponse>>((res, rej) => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
24
|
+
return (async () => {
|
|
25
|
+
// get request headers
|
|
26
|
+
const headers: RawAxiosRequestHeaders = (await getHeadersAsync())
|
|
27
|
+
.headers;
|
|
28
|
+
|
|
29
|
+
makeRequest<TResponse>({
|
|
30
|
+
path: path,
|
|
31
|
+
body: postData,
|
|
32
|
+
method: HttpMethod.POST,
|
|
33
|
+
isFormData,
|
|
34
|
+
headers,
|
|
35
|
+
baseURL: API_URL,
|
|
36
|
+
timeout: TIMEOUT,
|
|
37
|
+
}).then((postResponse) => {
|
|
38
|
+
if (postResponse.status) {
|
|
39
|
+
// scroll to top after success
|
|
40
|
+
window.scrollTo({
|
|
41
|
+
top: 0,
|
|
42
|
+
behavior: 'smooth',
|
|
43
|
+
});
|
|
44
|
+
res(postResponse as IRequestSuccess<TResponse>);
|
|
45
|
+
} else {
|
|
46
|
+
// scroll to top after error
|
|
47
|
+
window.scrollTo({
|
|
48
|
+
top: 0,
|
|
49
|
+
behavior: 'smooth',
|
|
50
|
+
});
|
|
51
|
+
rej(postResponse);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
})();
|
|
48
55
|
})
|
|
49
56
|
);
|
|
50
57
|
const post = async (
|
package/src/types/index.ts
CHANGED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { QueryClient } from '@tanstack/react-query';
|
|
2
|
-
import type { RawAxiosRequestHeaders } from 'axios';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
export interface IRequestHeaderProvider {
|
|
5
|
-
headers: RawAxiosRequestHeaders;
|
|
6
|
-
setHeaders: (newHeaders: RawAxiosRequestHeaders) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare const RequestHeaderProvider: React.Context<IRequestHeaderProvider>;
|
|
9
|
-
export declare const QueryClientRequestProvider: ({ client, children, }: {
|
|
10
|
-
client: QueryClient;
|
|
11
|
-
children: React.ReactNode;
|
|
12
|
-
}) => JSX.Element;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
|
|
6
|
-
const RequestHeaderProvider = React.createContext({
|
|
7
|
-
headers: {},
|
|
8
|
-
setHeaders: (_newHeaders) => {
|
|
9
|
-
//
|
|
10
|
-
},
|
|
11
|
-
});
|
|
12
|
-
const QueryClientRequestProvider = ({ client, children, }) => {
|
|
13
|
-
const [headers, updateHeaders] = React.useState({});
|
|
14
|
-
const setHeaders = React.useCallback((newHeaders) => {
|
|
15
|
-
updateHeaders(newHeaders);
|
|
16
|
-
}, []);
|
|
17
|
-
const requestContextValue = React.useMemo(() => ({ headers, setHeaders }), [headers, setHeaders]);
|
|
18
|
-
return (React.createElement(reactQuery.QueryClientProvider, { client: client },
|
|
19
|
-
React.createElement(RequestHeaderProvider.Provider, { value: requestContextValue }, children)));
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
exports.QueryClientRequestProvider = QueryClientRequestProvider;
|
|
23
|
-
exports.RequestHeaderProvider = RequestHeaderProvider;
|
|
24
|
-
//# sourceMappingURL=QueryClientRequestProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryClientRequestProvider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/contexts/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var QueryClientRequestProvider = require('./QueryClientRequestProvider.js');
|
|
5
|
-
|
|
6
|
-
const useQueryHeaders = () => {
|
|
7
|
-
return React.useContext(QueryClientRequestProvider.RequestHeaderProvider);
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
exports.useQueryHeaders = useQueryHeaders;
|
|
11
|
-
//# sourceMappingURL=useQueryHeaders.js.map
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { QueryClient } from '@tanstack/react-query';
|
|
2
|
-
import { QueryClientProvider } from '@tanstack/react-query';
|
|
3
|
-
import type { RawAxiosRequestHeaders } from 'axios';
|
|
4
|
-
import React, { createContext, useCallback, useMemo, useState } from 'react';
|
|
5
|
-
|
|
6
|
-
export interface IRequestHeaderProvider {
|
|
7
|
-
headers: RawAxiosRequestHeaders;
|
|
8
|
-
setHeaders: (newHeaders: RawAxiosRequestHeaders) => void;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const RequestHeaderProvider = createContext<IRequestHeaderProvider>({
|
|
12
|
-
headers: {},
|
|
13
|
-
setHeaders: (_newHeaders: IRequestHeaderProvider['headers']) => {
|
|
14
|
-
//
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export const QueryClientRequestProvider = ({
|
|
19
|
-
client,
|
|
20
|
-
children,
|
|
21
|
-
}: {
|
|
22
|
-
client: QueryClient;
|
|
23
|
-
children: React.ReactNode;
|
|
24
|
-
}) => {
|
|
25
|
-
const [headers, updateHeaders] = useState<IRequestHeaderProvider['headers']>(
|
|
26
|
-
{}
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
const setHeaders = useCallback(
|
|
30
|
-
(newHeaders: IRequestHeaderProvider['headers']) => {
|
|
31
|
-
updateHeaders(newHeaders);
|
|
32
|
-
},
|
|
33
|
-
[]
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
const requestContextValue = useMemo(
|
|
37
|
-
() => ({ headers, setHeaders }),
|
|
38
|
-
[headers, setHeaders]
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<QueryClientProvider client={client}>
|
|
43
|
-
<RequestHeaderProvider.Provider value={requestContextValue}>
|
|
44
|
-
{children}
|
|
45
|
-
</RequestHeaderProvider.Provider>
|
|
46
|
-
</QueryClientProvider>
|
|
47
|
-
);
|
|
48
|
-
};
|
package/src/contexts/index.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { useContext } from 'react';
|
|
2
|
-
import type { IRequestHeaderProvider } from './QueryClientRequestProvider';
|
|
3
|
-
import { RequestHeaderProvider } from './QueryClientRequestProvider';
|
|
4
|
-
|
|
5
|
-
export const useQueryHeaders = (): IRequestHeaderProvider => {
|
|
6
|
-
return useContext(RequestHeaderProvider);
|
|
7
|
-
};
|