@@ -26,78 +26,22 @@ export const useCreateQuery = <T extends unknown>(
26
26
) : Types . UseQueryResult < T > => {
27
27
const safeDependencies = dependencies ?? [ ] ;
28
28
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
+ } ) ;
101
45
102
46
const runQuery = ( overrideInitialized ?: boolean ) => {
103
47
const fetchData = async ( ) => {
@@ -123,10 +67,65 @@ export const useCreateQuery = <T extends unknown>(
123
67
124
68
R . useEffect ( ( ) => runQuery ( ) , safeDependencies ) ;
125
69
126
- return state ;
70
+ return state as Types . UseQueryResult < T > ;
127
71
} ;
128
72
129
73
export const _testCreateUseCreateQuery = ( react : any ) => {
130
74
R = react as ReactType ;
131
75
return useCreateQuery ;
132
76
} ;
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