feat: pass variableKey to task fn in withVariableKey method
This commit is contained in:
@@ -6,6 +6,13 @@ import 'package:fl_query/src/core/infinite_query.dart';
|
||||
typedef InfiniteQueryJobFn<DataType, PageType, ArgsType> = Future<DataType>
|
||||
Function(PageType page, ArgsType args);
|
||||
|
||||
typedef InfiniteQueryJobVariableFn<DataType, PageType, ArgsType>
|
||||
= Future<DataType> Function(
|
||||
String variableKey,
|
||||
PageType page,
|
||||
ArgsType args,
|
||||
);
|
||||
|
||||
typedef InfiniteQueryJobVariableKeyFn<DataType, ErrorType, PageType, ArgsType>
|
||||
= InfiniteQueryJob<DataType, ErrorType, PageType, ArgsType> Function(
|
||||
String variable);
|
||||
@@ -40,7 +47,7 @@ class InfiniteQueryJob<DataType, ErrorType, PageType, ArgsType> {
|
||||
static InfiniteQueryJobVariableKeyFn<DataType, ErrorType, PageType, ArgsType>
|
||||
withVariableKey<DataType, ErrorType, PageType, ArgsType>({
|
||||
required String baseQueryKey,
|
||||
required InfiniteQueryJobFn<DataType, PageType, ArgsType?> task,
|
||||
required InfiniteQueryJobVariableFn<DataType, PageType, ArgsType?> task,
|
||||
required final InfiniteQueryNextPage<DataType, PageType> nextPage,
|
||||
required final PageType initialPage,
|
||||
RetryConfig? retryConfig,
|
||||
@@ -48,9 +55,9 @@ class InfiniteQueryJob<DataType, ErrorType, PageType, ArgsType> {
|
||||
JsonConfig<DataType>? jsonConfig,
|
||||
bool enabled = true,
|
||||
}) {
|
||||
return (String variable) => InfiniteQueryJob(
|
||||
queryKey: "$baseQueryKey$variable",
|
||||
task: task,
|
||||
return (String variableKey) => InfiniteQueryJob(
|
||||
queryKey: "$baseQueryKey$variableKey",
|
||||
task: (page, args) => task(variableKey, page, args),
|
||||
nextPage: nextPage,
|
||||
initialPage: initialPage,
|
||||
retryConfig: retryConfig,
|
||||
|
||||
@@ -6,6 +6,13 @@ typedef MutationJobFn<DataType, VariablesType, ArgsType> = Future<DataType>
|
||||
ArgsType args,
|
||||
);
|
||||
|
||||
typedef MutationJobVariableFn<DataType, VariablesType, ArgsType>
|
||||
= Future<DataType> Function(
|
||||
String variableKey,
|
||||
VariablesType variables,
|
||||
ArgsType args,
|
||||
);
|
||||
|
||||
typedef MutationJobVariableKeyFn<DataType, ErrorType, VariablesType,
|
||||
RecoveryType, ArgsType>
|
||||
= MutationJob<DataType, ErrorType, VariablesType, RecoveryType, ArgsType>
|
||||
@@ -33,14 +40,14 @@ class MutationJob<DataType, ErrorType, VariablesType, RecoveryType, ArgsType> {
|
||||
withVariableKey<DataType, ErrorType, VariablesType, RecoveryType,
|
||||
ArgsType>({
|
||||
required String baseMutationKey,
|
||||
required MutationJobFn<DataType, VariablesType, ArgsType?> task,
|
||||
required MutationJobVariableFn<DataType, VariablesType, ArgsType?> task,
|
||||
RetryConfig? retryConfig,
|
||||
List<String>? refreshQueries,
|
||||
List<String>? refreshInfiniteQueries,
|
||||
}) {
|
||||
return (String variable) => MutationJob(
|
||||
mutationKey: "$baseMutationKey$variable",
|
||||
task: task,
|
||||
return (String variableKey) => MutationJob(
|
||||
mutationKey: "$baseMutationKey$variableKey",
|
||||
task: (variables, args) => task(variableKey, variables, args),
|
||||
retryConfig: retryConfig,
|
||||
refreshQueries: refreshQueries,
|
||||
refreshInfiniteQueries: refreshInfiniteQueries,
|
||||
|
||||
@@ -4,6 +4,10 @@ import 'package:fl_query/src/collections/retry_config.dart';
|
||||
|
||||
typedef QueryJobFn<DataType, ArgsType> = Future<DataType> Function(
|
||||
ArgsType args);
|
||||
typedef QueryJobVariableFn<DataType, ArgsType> = Future<DataType> Function(
|
||||
String variableKey,
|
||||
ArgsType args,
|
||||
);
|
||||
|
||||
typedef QueryJobVariableKeyFn<DataType, ErrorType, ArgsType>
|
||||
= QueryJob<DataType, ErrorType, ArgsType> Function(String variable);
|
||||
@@ -37,16 +41,16 @@ class QueryJob<DataType, ErrorType, ArgsType> {
|
||||
static QueryJobVariableKeyFn<DataType, ErrorType, ArgsType>
|
||||
withVariableKey<DataType, ErrorType, ArgsType>({
|
||||
required String baseQueryKey,
|
||||
required QueryJobFn<DataType, ArgsType?> task,
|
||||
required QueryJobVariableFn<DataType, ArgsType?> task,
|
||||
DataType? initial,
|
||||
RetryConfig? retryConfig,
|
||||
RefreshConfig? refreshConfig,
|
||||
JsonConfig<DataType>? jsonConfig,
|
||||
bool enabled = true,
|
||||
}) {
|
||||
return (String variable) => QueryJob(
|
||||
queryKey: "$baseQueryKey$variable",
|
||||
task: task,
|
||||
return (String variableKey) => QueryJob(
|
||||
queryKey: "$baseQueryKey$variableKey",
|
||||
task: (args) => task(variableKey, args),
|
||||
initial: initial,
|
||||
retryConfig: retryConfig,
|
||||
refreshConfig: refreshConfig,
|
||||
|
||||
@@ -4,9 +4,9 @@ import 'package:flutter/material.dart';
|
||||
|
||||
Query<DataType, ErrorType> useQueryJob<DataType, ErrorType, ArgsType>({
|
||||
required QueryJob<DataType, ErrorType, ArgsType> job,
|
||||
required ArgsType args,
|
||||
ValueChanged<DataType>? onData,
|
||||
ValueChanged<ErrorType>? onError,
|
||||
required ArgsType args,
|
||||
}) {
|
||||
return useQuery<DataType, ErrorType>(
|
||||
job.queryKey,
|
||||
|
||||
Reference in New Issue
Block a user