@@ -97,35 +97,49 @@ public struct UseQuery<TData: Sendable, TKey: QueryKey, Content: View>: View {
9797 /// - Parameters:
9898 /// - queryKey: Unique identifier for the query
9999 /// - queryFn: Function that fetches the data
100+ /// - retryConfig: Configuration for retry behavior (default: RetryConfig())
101+ /// - networkMode: Network behavior configuration (default: .online)
100102 /// - staleTime: Time before data is considered stale (default: 0)
101103 /// - gcTime: Time before unused data is garbage collected (default: 5 minutes)
102- /// - enabled: Whether the query should execute automatically (default: true)
104+ /// - refetchTriggers: Configuration for automatic refetching triggers (default: .default)
105+ /// - refetchOnAppear: When to refetch data on view appear (default: .ifStale)
103106 /// - initialData: Initial data to show while the query loads
107+ /// - initialDataFunction: Function to provide initial data
108+ /// - structuralSharing: Whether to use structural sharing for performance (default: true)
109+ /// - meta: Arbitrary metadata for this query
110+ /// - enabled: Whether the query should execute automatically (default: true)
104111 /// - queryClient: Optional query client (uses shared instance if nil)
105112 /// - content: View builder that receives the query result
106113 public init (
107114 queryKey: TKey ,
108115 queryFn: @escaping @Sendable ( TKey) async throws -> TData ,
116+ retryConfig: RetryConfig = RetryConfig ( ) ,
117+ networkMode: NetworkMode = . online,
109118 staleTime: TimeInterval = 0 ,
110119 gcTime: TimeInterval = defaultGcTime,
111- enabled: Bool = true ,
120+ refetchTriggers: RefetchTriggers = . default,
121+ refetchOnAppear: RefetchOnAppear = . ifStale,
112122 initialData: TData ? = nil ,
123+ initialDataFunction: InitialDataFunction < TData > ? = nil ,
124+ structuralSharing: Bool = true ,
125+ meta: QueryMeta ? = nil ,
126+ enabled: Bool = true ,
113127 queryClient: QueryClient ? = nil ,
114128 @ViewBuilder content: @escaping ( UseQueryResult < TData > ) -> Content
115129 ) {
116130 let options = QueryOptions < TData , TKey > (
117131 queryKey: queryKey,
118132 queryFn: queryFn,
119- retryConfig: RetryConfig ( ) ,
120- networkMode: NetworkMode . online ,
133+ retryConfig: retryConfig ,
134+ networkMode: networkMode ,
121135 staleTime: staleTime,
122136 gcTime: gcTime,
123- refetchTriggers: RefetchTriggers . default ,
124- refetchOnAppear: RefetchOnAppear . ifStale ,
137+ refetchTriggers: refetchTriggers ,
138+ refetchOnAppear: refetchOnAppear ,
125139 initialData: initialData,
126- initialDataFunction: nil as InitialDataFunction < TData > ? ,
127- structuralSharing: true ,
128- meta: nil as QueryMeta ? ,
140+ initialDataFunction: initialDataFunction ,
141+ structuralSharing: structuralSharing ,
142+ meta: meta ,
129143 enabled: enabled
130144 )
131145
@@ -181,35 +195,49 @@ extension UseQuery {
181195 /// - Parameters:
182196 /// - queryKey: String identifier for the query
183197 /// - queryFn: Function that fetches the data
198+ /// - retryConfig: Configuration for retry behavior (default: RetryConfig())
199+ /// - networkMode: Network behavior configuration (default: .online)
184200 /// - staleTime: Time before data is considered stale (default: 0)
185201 /// - gcTime: Time before unused data is garbage collected (default: 5 minutes)
186- /// - enabled: Whether the query should execute automatically (default: true)
202+ /// - refetchTriggers: Configuration for automatic refetching triggers (default: .default)
203+ /// - refetchOnAppear: When to refetch data on view appear (default: .ifStale)
187204 /// - initialData: Initial data to show while the query loads
205+ /// - initialDataFunction: Function to provide initial data
206+ /// - structuralSharing: Whether to use structural sharing for performance (default: true)
207+ /// - meta: Arbitrary metadata for this query
208+ /// - enabled: Whether the query should execute automatically (default: true)
188209 /// - queryClient: Optional query client (uses shared instance if nil)
189210 /// - content: View builder that receives the query result
190211 public init (
191212 queryKey: String ,
192213 queryFn: @escaping @Sendable ( String) async throws -> TData ,
214+ retryConfig: RetryConfig = RetryConfig ( ) ,
215+ networkMode: NetworkMode = . online,
193216 staleTime: TimeInterval = 0 ,
194217 gcTime: TimeInterval = defaultGcTime,
195- enabled: Bool = true ,
218+ refetchTriggers: RefetchTriggers = . default,
219+ refetchOnAppear: RefetchOnAppear = . ifStale,
196220 initialData: TData ? = nil ,
221+ initialDataFunction: InitialDataFunction < TData > ? = nil ,
222+ structuralSharing: Bool = true ,
223+ meta: QueryMeta ? = nil ,
224+ enabled: Bool = true ,
197225 queryClient: QueryClient ? = nil ,
198226 @ViewBuilder content: @escaping ( UseQueryResult < TData > ) -> Content
199227 ) where TKey == String {
200228 let options = QueryOptions < TData , String > (
201229 queryKey: queryKey,
202230 queryFn: queryFn,
203- retryConfig: RetryConfig ( ) ,
204- networkMode: NetworkMode . online ,
231+ retryConfig: retryConfig ,
232+ networkMode: networkMode ,
205233 staleTime: staleTime,
206234 gcTime: gcTime,
207- refetchTriggers: RefetchTriggers . default ,
208- refetchOnAppear: RefetchOnAppear . ifStale ,
235+ refetchTriggers: refetchTriggers ,
236+ refetchOnAppear: refetchOnAppear ,
209237 initialData: initialData,
210- initialDataFunction: nil as InitialDataFunction < TData > ? ,
211- structuralSharing: true ,
212- meta: nil as QueryMeta ? ,
238+ initialDataFunction: initialDataFunction ,
239+ structuralSharing: structuralSharing ,
240+ meta: meta ,
213241 enabled: enabled
214242 )
215243
@@ -225,35 +253,49 @@ extension UseQuery {
225253 /// - Parameters:
226254 /// - queryKey: Array identifier for the query
227255 /// - queryFn: Function that fetches the data
256+ /// - retryConfig: Configuration for retry behavior (default: RetryConfig())
257+ /// - networkMode: Network behavior configuration (default: .online)
228258 /// - staleTime: Time before data is considered stale (default: 0)
229259 /// - gcTime: Time before unused data is garbage collected (default: 5 minutes)
230- /// - enabled: Whether the query should execute automatically (default: true)
260+ /// - refetchTriggers: Configuration for automatic refetching triggers (default: .default)
261+ /// - refetchOnAppear: When to refetch data on view appear (default: .ifStale)
231262 /// - initialData: Initial data to show while the query loads
263+ /// - initialDataFunction: Function to provide initial data
264+ /// - structuralSharing: Whether to use structural sharing for performance (default: true)
265+ /// - meta: Arbitrary metadata for this query
266+ /// - enabled: Whether the query should execute automatically (default: true)
232267 /// - queryClient: Optional query client (uses shared instance if nil)
233268 /// - content: View builder that receives the query result
234269 public init (
235270 queryKey: [ String ] ,
236271 queryFn: @escaping @Sendable ( [ String] ) async throws -> TData ,
272+ retryConfig: RetryConfig = RetryConfig ( ) ,
273+ networkMode: NetworkMode = . online,
237274 staleTime: TimeInterval = 0 ,
238275 gcTime: TimeInterval = defaultGcTime,
239- enabled: Bool = true ,
276+ refetchTriggers: RefetchTriggers = . default,
277+ refetchOnAppear: RefetchOnAppear = . ifStale,
240278 initialData: TData ? = nil ,
279+ initialDataFunction: InitialDataFunction < TData > ? = nil ,
280+ structuralSharing: Bool = true ,
281+ meta: QueryMeta ? = nil ,
282+ enabled: Bool = true ,
241283 queryClient: QueryClient ? = nil ,
242284 @ViewBuilder content: @escaping ( UseQueryResult < TData > ) -> Content
243285 ) where TKey == [ String ] {
244286 let options = QueryOptions < TData , [ String ] > (
245287 queryKey: queryKey,
246288 queryFn: queryFn,
247- retryConfig: RetryConfig ( ) ,
248- networkMode: NetworkMode . online ,
289+ retryConfig: retryConfig ,
290+ networkMode: networkMode ,
249291 staleTime: staleTime,
250292 gcTime: gcTime,
251- refetchTriggers: RefetchTriggers . default ,
252- refetchOnAppear: RefetchOnAppear . ifStale ,
293+ refetchTriggers: refetchTriggers ,
294+ refetchOnAppear: refetchOnAppear ,
253295 initialData: initialData,
254- initialDataFunction: nil as InitialDataFunction < TData > ? ,
255- structuralSharing: true ,
256- meta: nil as QueryMeta ? ,
296+ initialDataFunction: initialDataFunction ,
297+ structuralSharing: structuralSharing ,
298+ meta: meta ,
257299 enabled: enabled
258300 )
259301
0 commit comments