@trackunit/react-graphql-hooks 1.18.18 → 1.18.19
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/index.cjs.js +10 -3
- package/index.esm.js +10 -3
- package/package.json +1 -1
- package/src/usePaginationQuery.d.ts +1 -0
- package/src/utils/createPaginationReducer.d.ts +5 -1
package/index.cjs.js
CHANGED
|
@@ -106,19 +106,22 @@ const useLazyQuery = (document, options) => {
|
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* Creates a reducer function for managing pagination state.
|
|
109
|
-
* Handles data updates, reset, and reset trigger increments.
|
|
109
|
+
* Handles data updates, error tracking, reset, and reset trigger increments.
|
|
110
110
|
*/
|
|
111
111
|
const createPaginationReducer = () => {
|
|
112
112
|
return (state, action) => {
|
|
113
113
|
switch (action.type) {
|
|
114
114
|
case "SET_DATA": {
|
|
115
|
-
return { ...state, data: action.payload };
|
|
115
|
+
return { ...state, data: action.payload, error: undefined };
|
|
116
116
|
}
|
|
117
117
|
case "SET_LAST_FETCHED_DATA": {
|
|
118
118
|
return { ...state, lastFetchedData: action.payload };
|
|
119
119
|
}
|
|
120
|
+
case "SET_ERROR": {
|
|
121
|
+
return { ...state, error: action.payload };
|
|
122
|
+
}
|
|
120
123
|
case "RESET": {
|
|
121
|
-
return { ...state, data: undefined, lastFetchedData: undefined };
|
|
124
|
+
return { ...state, data: undefined, lastFetchedData: undefined, error: undefined };
|
|
122
125
|
}
|
|
123
126
|
case "INCREMENT_RESET_TRIGGER": {
|
|
124
127
|
return { ...state, resetTrigger: state.resetTrigger + 1 };
|
|
@@ -313,6 +316,7 @@ const usePaginationQuery = (document, props) => {
|
|
|
313
316
|
data: undefined,
|
|
314
317
|
lastFetchedData: undefined,
|
|
315
318
|
resetTrigger: 0,
|
|
319
|
+
error: undefined,
|
|
316
320
|
});
|
|
317
321
|
const updateQueryRef = react.useRef(props.updateQuery);
|
|
318
322
|
react.useEffect(() => {
|
|
@@ -421,6 +425,7 @@ const usePaginationQuery = (document, props) => {
|
|
|
421
425
|
if (signal.aborted) {
|
|
422
426
|
return;
|
|
423
427
|
}
|
|
428
|
+
dispatch({ type: "SET_ERROR", payload: error });
|
|
424
429
|
if (onErrorRef.current) {
|
|
425
430
|
return onErrorRef.current(error);
|
|
426
431
|
}
|
|
@@ -513,12 +518,14 @@ const usePaginationQuery = (document, props) => {
|
|
|
513
518
|
data: state.data ?? previousData,
|
|
514
519
|
previousData,
|
|
515
520
|
loading: isLoading || lazyLoading,
|
|
521
|
+
error: state.error,
|
|
516
522
|
pagination: { setIsLoading, isLoading, setPageInfo, pageInfo, reset, nextPage, previousPage },
|
|
517
523
|
lastFetchedData: state.lastFetchedData,
|
|
518
524
|
reset,
|
|
519
525
|
}), [
|
|
520
526
|
state.data,
|
|
521
527
|
state.lastFetchedData,
|
|
528
|
+
state.error,
|
|
522
529
|
isLoading,
|
|
523
530
|
lazyLoading,
|
|
524
531
|
setIsLoading,
|
package/index.esm.js
CHANGED
|
@@ -104,19 +104,22 @@ const useLazyQuery = (document, options) => {
|
|
|
104
104
|
|
|
105
105
|
/**
|
|
106
106
|
* Creates a reducer function for managing pagination state.
|
|
107
|
-
* Handles data updates, reset, and reset trigger increments.
|
|
107
|
+
* Handles data updates, error tracking, reset, and reset trigger increments.
|
|
108
108
|
*/
|
|
109
109
|
const createPaginationReducer = () => {
|
|
110
110
|
return (state, action) => {
|
|
111
111
|
switch (action.type) {
|
|
112
112
|
case "SET_DATA": {
|
|
113
|
-
return { ...state, data: action.payload };
|
|
113
|
+
return { ...state, data: action.payload, error: undefined };
|
|
114
114
|
}
|
|
115
115
|
case "SET_LAST_FETCHED_DATA": {
|
|
116
116
|
return { ...state, lastFetchedData: action.payload };
|
|
117
117
|
}
|
|
118
|
+
case "SET_ERROR": {
|
|
119
|
+
return { ...state, error: action.payload };
|
|
120
|
+
}
|
|
118
121
|
case "RESET": {
|
|
119
|
-
return { ...state, data: undefined, lastFetchedData: undefined };
|
|
122
|
+
return { ...state, data: undefined, lastFetchedData: undefined, error: undefined };
|
|
120
123
|
}
|
|
121
124
|
case "INCREMENT_RESET_TRIGGER": {
|
|
122
125
|
return { ...state, resetTrigger: state.resetTrigger + 1 };
|
|
@@ -311,6 +314,7 @@ const usePaginationQuery = (document, props) => {
|
|
|
311
314
|
data: undefined,
|
|
312
315
|
lastFetchedData: undefined,
|
|
313
316
|
resetTrigger: 0,
|
|
317
|
+
error: undefined,
|
|
314
318
|
});
|
|
315
319
|
const updateQueryRef = useRef(props.updateQuery);
|
|
316
320
|
useEffect(() => {
|
|
@@ -419,6 +423,7 @@ const usePaginationQuery = (document, props) => {
|
|
|
419
423
|
if (signal.aborted) {
|
|
420
424
|
return;
|
|
421
425
|
}
|
|
426
|
+
dispatch({ type: "SET_ERROR", payload: error });
|
|
422
427
|
if (onErrorRef.current) {
|
|
423
428
|
return onErrorRef.current(error);
|
|
424
429
|
}
|
|
@@ -511,12 +516,14 @@ const usePaginationQuery = (document, props) => {
|
|
|
511
516
|
data: state.data ?? previousData,
|
|
512
517
|
previousData,
|
|
513
518
|
loading: isLoading || lazyLoading,
|
|
519
|
+
error: state.error,
|
|
514
520
|
pagination: { setIsLoading, isLoading, setPageInfo, pageInfo, reset, nextPage, previousPage },
|
|
515
521
|
lastFetchedData: state.lastFetchedData,
|
|
516
522
|
reset,
|
|
517
523
|
}), [
|
|
518
524
|
state.data,
|
|
519
525
|
state.lastFetchedData,
|
|
526
|
+
state.error,
|
|
520
527
|
isLoading,
|
|
521
528
|
lazyLoading,
|
|
522
529
|
setIsLoading,
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import { type UpdateQueryOptions } from "./utils/createUpdateQueryHandler";
|
|
|
7
7
|
export type PaginationQuery<TData> = {
|
|
8
8
|
data: TData | undefined;
|
|
9
9
|
loading: boolean;
|
|
10
|
+
error?: unknown;
|
|
10
11
|
lastFetchedData?: TData;
|
|
11
12
|
pagination: RelayTableSupport;
|
|
12
13
|
previousData: TData | undefined;
|
|
@@ -2,6 +2,7 @@ export type PaginationState<TData> = {
|
|
|
2
2
|
data: TData | undefined;
|
|
3
3
|
lastFetchedData: TData | undefined;
|
|
4
4
|
resetTrigger: number;
|
|
5
|
+
error: unknown;
|
|
5
6
|
};
|
|
6
7
|
export type PaginationAction<TData> = {
|
|
7
8
|
type: "SET_DATA";
|
|
@@ -9,6 +10,9 @@ export type PaginationAction<TData> = {
|
|
|
9
10
|
} | {
|
|
10
11
|
type: "SET_LAST_FETCHED_DATA";
|
|
11
12
|
payload: TData;
|
|
13
|
+
} | {
|
|
14
|
+
type: "SET_ERROR";
|
|
15
|
+
payload: unknown;
|
|
12
16
|
} | {
|
|
13
17
|
type: "RESET";
|
|
14
18
|
} | {
|
|
@@ -16,6 +20,6 @@ export type PaginationAction<TData> = {
|
|
|
16
20
|
};
|
|
17
21
|
/**
|
|
18
22
|
* Creates a reducer function for managing pagination state.
|
|
19
|
-
* Handles data updates, reset, and reset trigger increments.
|
|
23
|
+
* Handles data updates, error tracking, reset, and reset trigger increments.
|
|
20
24
|
*/
|
|
21
25
|
export declare const createPaginationReducer: <TData>() => (state: PaginationState<TData>, action: PaginationAction<TData>) => PaginationState<TData>;
|