@@ -26,78 +26,22 @@ export const useCreateQuery = <T extends unknown>(
2626) : Types . UseQueryResult < T > => {
2727 const safeDependencies = dependencies ?? [ ] ;
2828 const requestId = R . useRef ( requestIdGenerator ( ) ) . current ;
29- const [ state , dispatch ] = R . useReducer (
30- (
31- state : Types . UseQueryResult < T > ,
32- action : Types . CreateQueryReducerAction < T >
33- ) => {
34- switch ( action . type ) {
35- case "load" :
36- return {
37- ...state ,
38- isSuccess : false ,
39- isError : false ,
40- isFetching : false ,
41- isLoading : true ,
42- isUninitialized : false ,
43- startedTimeStamp : Date . now ( ) ,
44- refetch : action . payload . refetch ,
45- } ;
46- case "fetch" :
47- return {
48- ...state ,
49- isLoading : false ,
50- isSuccess : false ,
51- isError : false ,
52- isFetching : true ,
53- isUninitialized : false ,
54- startedTimeStamp : Date . now ( ) ,
55- refetch : action . payload . refetch ,
56- } ;
57- case "success" :
58- return {
59- ...state ,
60- isLoading : false ,
61- isFetching : false ,
62- isError : false ,
63- isUninitialized : false ,
64- isSuccess : true ,
65- data : action . payload . data ,
66- currentData : action . payload . data ,
67- fulfilledTimeStamp : Date . now ( ) ,
68- } ;
69- case "error" :
70- return {
71- ...state ,
72- isLoading : false ,
73- isSuccess : false ,
74- isFetching : false ,
75- isUninitialized : false ,
76- isError : true ,
77- error : action . payload . error ,
78- fulfilledTimeStamp : Date . now ( ) ,
79- } ;
80- default :
81- return state ;
82- }
83- } ,
84- {
85- isLoading : true ,
86- isSuccess : false ,
87- isError : false ,
88- isFetching : false ,
89- refetch : ( ) => { } ,
90- isUninitialized : true ,
91- currentData : undefined ,
92- data : undefined ,
93- error : undefined ,
94- endpointName : "" ,
95- fulfilledTimeStamp : 0 ,
96- originalArgs : safeDependencies ,
97- requestId,
98- startedTimeStamp : 0 ,
99- }
100- ) ;
29+ const [ state , dispatch ] = R . useReducer ( reducer , {
30+ isLoading : true ,
31+ isSuccess : false ,
32+ isError : false ,
33+ isFetching : false ,
34+ refetch : ( ) => { } ,
35+ isUninitialized : true ,
36+ currentData : undefined ,
37+ data : undefined ,
38+ error : undefined ,
39+ endpointName : "" ,
40+ fulfilledTimeStamp : 0 ,
41+ originalArgs : safeDependencies ,
42+ requestId,
43+ startedTimeStamp : 0 ,
44+ } ) ;
10145
10246 const runQuery = ( overrideInitialized ?: boolean ) => {
10347 const fetchData = async ( ) => {
@@ -123,10 +67,65 @@ export const useCreateQuery = <T extends unknown>(
12367
12468 R . useEffect ( ( ) => runQuery ( ) , safeDependencies ) ;
12569
126- return state ;
70+ return state as Types . UseQueryResult < T > ;
12771} ;
12872
12973export const _testCreateUseCreateQuery = ( react : any ) => {
13074 R = react as ReactType ;
13175 return useCreateQuery ;
13276} ;
77+
78+ const reducer = < T > (
79+ state : Types . UseQueryResult < T > ,
80+ action : Types . CreateQueryReducerAction < T >
81+ ) => {
82+ switch ( action . type ) {
83+ case "load" :
84+ return {
85+ ...state ,
86+ isSuccess : false ,
87+ isError : false ,
88+ isFetching : false ,
89+ isLoading : true ,
90+ isUninitialized : false ,
91+ startedTimeStamp : Date . now ( ) ,
92+ refetch : action . payload . refetch ,
93+ } ;
94+ case "fetch" :
95+ return {
96+ ...state ,
97+ isLoading : false ,
98+ isSuccess : false ,
99+ isError : false ,
100+ isFetching : true ,
101+ isUninitialized : false ,
102+ startedTimeStamp : Date . now ( ) ,
103+ refetch : action . payload . refetch ,
104+ } ;
105+ case "success" :
106+ return {
107+ ...state ,
108+ isLoading : false ,
109+ isFetching : false ,
110+ isError : false ,
111+ isUninitialized : false ,
112+ isSuccess : true ,
113+ data : action . payload . data ,
114+ currentData : action . payload . data ,
115+ fulfilledTimeStamp : Date . now ( ) ,
116+ } ;
117+ case "error" :
118+ return {
119+ ...state ,
120+ isLoading : false ,
121+ isSuccess : false ,
122+ isFetching : false ,
123+ isUninitialized : false ,
124+ isError : true ,
125+ error : action . payload . error ,
126+ fulfilledTimeStamp : Date . now ( ) ,
127+ } ;
128+ default :
129+ return state ;
130+ }
131+ } ;
0 commit comments