@@ -492,4 +492,143 @@ extension UseInfiniteQuery {
492492 content: content
493493 )
494494 }
495+
496+ /// Create UseInfiniteQuery with KeyTuple5-based query key
497+ /// - Parameters:
498+ /// - queryKey: KeyTuple5 identifier for the query
499+ /// - queryFn: Function that fetches page data
500+ /// - getNextPageParam: Function to get next page parameter from pages
501+ /// - getPreviousPageParam: Function to determine the previous page parameter
502+ /// - initialPageParam: Initial page parameter for the first page
503+ /// - maxPages: Maximum number of pages to retain
504+ /// - retryConfig: Configuration for retry behavior (default: RetryConfig())
505+ /// - networkMode: Network behavior configuration (default: .online)
506+ /// - staleTime: Time before data is considered stale (default: 0)
507+ /// - gcTime: Time before unused data is garbage collected (default: 5 minutes)
508+ /// - refetchTriggers: Configuration for automatic refetching triggers (default: .default)
509+ /// - refetchOnAppear: When to refetch data on view appear (default: .ifStale)
510+ /// - structuralSharing: Whether to use structural sharing for performance (default: true)
511+ /// - meta: Arbitrary metadata for this query
512+ /// - enabled: Whether the query should execute automatically (default: true)
513+ /// - queryClient: Optional query client (uses shared instance if nil)
514+ /// - content: View builder that receives the query result
515+ public init <
516+ K1: QueryKeyCodable ,
517+ K2: QueryKeyCodable ,
518+ K3: QueryKeyCodable ,
519+ K4: QueryKeyCodable ,
520+ K5: QueryKeyCodable
521+ > (
522+ queryKey: KeyTuple5 < K1 , K2 , K3 , K4 , K5 > ,
523+ queryFn: @escaping @Sendable ( KeyTuple5 < K1 , K2 , K3 , K4 , K5 > , TPageParam ? ) async throws -> TData ,
524+ getNextPageParam: @escaping GetNextPageParamFunction < TData , TPageParam > ,
525+ getPreviousPageParam: GetPreviousPageParamFunction < TData , TPageParam > ? = nil ,
526+ initialPageParam: TPageParam ? = nil ,
527+ maxPages: Int ? = nil ,
528+ retryConfig: RetryConfig = RetryConfig ( ) ,
529+ networkMode: NetworkMode = . online,
530+ staleTime: TimeInterval = 0 ,
531+ gcTime: TimeInterval = defaultGcTime,
532+ refetchTriggers: RefetchTriggers = . default,
533+ refetchOnAppear: RefetchOnAppear = . ifStale,
534+ structuralSharing: Bool = true ,
535+ meta: QueryMeta ? = nil ,
536+ enabled: Bool = true ,
537+ queryClient: QueryClient ? = nil ,
538+ @ViewBuilder content: @escaping ( UseInfiniteQueryResult < TData , TPageParam > ) -> Content
539+ ) where TKey == KeyTuple5 < K1 , K2 , K3 , K4 , K5 > {
540+ let options = InfiniteQueryOptions < TData , QueryError , KeyTuple5 < K1 , K2 , K3 , K4 , K5 > , TPageParam > (
541+ queryKey: queryKey,
542+ queryFn: queryFn,
543+ getNextPageParam: getNextPageParam,
544+ getPreviousPageParam: getPreviousPageParam,
545+ initialPageParam: initialPageParam,
546+ maxPages: maxPages,
547+ retryConfig: retryConfig,
548+ networkMode: networkMode,
549+ staleTime: staleTime,
550+ gcTime: gcTime,
551+ refetchTriggers: refetchTriggers,
552+ refetchOnAppear: refetchOnAppear,
553+ structuralSharing: structuralSharing,
554+ meta: meta,
555+ enabled: enabled
556+ )
557+
558+ self . init (
559+ options: options,
560+ queryClient: queryClient,
561+ content: content
562+ )
563+ }
564+
565+ /// Create UseInfiniteQuery with KeyTuple6-based query key
566+ /// - Parameters:
567+ /// - queryKey: KeyTuple6 identifier for the query
568+ /// - queryFn: Function that fetches page data
569+ /// - getNextPageParam: Function to get next page parameter from pages
570+ /// - getPreviousPageParam: Function to determine the previous page parameter
571+ /// - initialPageParam: Initial page parameter for the first page
572+ /// - maxPages: Maximum number of pages to retain
573+ /// - retryConfig: Configuration for retry behavior (default: RetryConfig())
574+ /// - networkMode: Network behavior configuration (default: .online)
575+ /// - staleTime: Time before data is considered stale (default: 0)
576+ /// - gcTime: Time before unused data is garbage collected (default: 5 minutes)
577+ /// - refetchTriggers: Configuration for automatic refetching triggers (default: .default)
578+ /// - refetchOnAppear: When to refetch data on view appear (default: .ifStale)
579+ /// - structuralSharing: Whether to use structural sharing for performance (default: true)
580+ /// - meta: Arbitrary metadata for this query
581+ /// - enabled: Whether the query should execute automatically (default: true)
582+ /// - queryClient: Optional query client (uses shared instance if nil)
583+ /// - content: View builder that receives the query result
584+ public init <
585+ K1: QueryKeyCodable ,
586+ K2: QueryKeyCodable ,
587+ K3: QueryKeyCodable ,
588+ K4: QueryKeyCodable ,
589+ K5: QueryKeyCodable ,
590+ K6: QueryKeyCodable
591+ > (
592+ queryKey: KeyTuple6 < K1 , K2 , K3 , K4 , K5 , K6 > ,
593+ queryFn: @escaping @Sendable ( KeyTuple6 < K1 , K2 , K3 , K4 , K5 , K6 > , TPageParam ? ) async throws -> TData ,
594+ getNextPageParam: @escaping GetNextPageParamFunction < TData , TPageParam > ,
595+ getPreviousPageParam: GetPreviousPageParamFunction < TData , TPageParam > ? = nil ,
596+ initialPageParam: TPageParam ? = nil ,
597+ maxPages: Int ? = nil ,
598+ retryConfig: RetryConfig = RetryConfig ( ) ,
599+ networkMode: NetworkMode = . online,
600+ staleTime: TimeInterval = 0 ,
601+ gcTime: TimeInterval = defaultGcTime,
602+ refetchTriggers: RefetchTriggers = . default,
603+ refetchOnAppear: RefetchOnAppear = . ifStale,
604+ structuralSharing: Bool = true ,
605+ meta: QueryMeta ? = nil ,
606+ enabled: Bool = true ,
607+ queryClient: QueryClient ? = nil ,
608+ @ViewBuilder content: @escaping ( UseInfiniteQueryResult < TData , TPageParam > ) -> Content
609+ ) where TKey == KeyTuple6 < K1 , K2 , K3 , K4 , K5 , K6 > {
610+ let options = InfiniteQueryOptions < TData , QueryError , KeyTuple6 < K1 , K2 , K3 , K4 , K5 , K6 > , TPageParam > (
611+ queryKey: queryKey,
612+ queryFn: queryFn,
613+ getNextPageParam: getNextPageParam,
614+ getPreviousPageParam: getPreviousPageParam,
615+ initialPageParam: initialPageParam,
616+ maxPages: maxPages,
617+ retryConfig: retryConfig,
618+ networkMode: networkMode,
619+ staleTime: staleTime,
620+ gcTime: gcTime,
621+ refetchTriggers: refetchTriggers,
622+ refetchOnAppear: refetchOnAppear,
623+ structuralSharing: structuralSharing,
624+ meta: meta,
625+ enabled: enabled
626+ )
627+
628+ self . init (
629+ options: options,
630+ queryClient: queryClient,
631+ content: content
632+ )
633+ }
495634}
0 commit comments