From 6c65fa20179352518040c8a4ffe677384f533266 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Thu, 19 Oct 2023 12:13:58 +0600 Subject: [PATCH] refactor(fl_query_hooks): bring back jobs API --- .../fl_query_hooks/lib/fl_query_hooks.dart | 4 +++ .../lib/src/jobs/use_infinite_query_job.dart | 26 +++++++++++++++++++ .../lib/src/jobs/use_mutation_job.dart | 26 +++++++++++++++++++ .../lib/src/jobs/use_query_job.dart | 22 ++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 packages/fl_query_hooks/lib/src/jobs/use_infinite_query_job.dart create mode 100644 packages/fl_query_hooks/lib/src/jobs/use_mutation_job.dart create mode 100644 packages/fl_query_hooks/lib/src/jobs/use_query_job.dart diff --git a/packages/fl_query_hooks/lib/fl_query_hooks.dart b/packages/fl_query_hooks/lib/fl_query_hooks.dart index deb579d..b2dc33b 100644 --- a/packages/fl_query_hooks/lib/fl_query_hooks.dart +++ b/packages/fl_query_hooks/lib/fl_query_hooks.dart @@ -4,3 +4,7 @@ export 'src/use_query_client.dart'; export 'src/use_query.dart'; export 'src/use_infinite_query.dart'; export 'src/use_mutation.dart'; + +export 'src/jobs/use_query_job.dart'; +export 'src/jobs/use_infinite_query_job.dart'; +export 'src/jobs/use_mutation_job.dart'; diff --git a/packages/fl_query_hooks/lib/src/jobs/use_infinite_query_job.dart b/packages/fl_query_hooks/lib/src/jobs/use_infinite_query_job.dart new file mode 100644 index 0000000..b26f338 --- /dev/null +++ b/packages/fl_query_hooks/lib/src/jobs/use_infinite_query_job.dart @@ -0,0 +1,26 @@ +import 'package:fl_query/fl_query.dart'; +import 'package:fl_query_hooks/src/use_infinite_query.dart'; +import 'package:flutter/material.dart'; + +InfiniteQuery + useInfiniteQueryJob({ + required InfiniteQueryJob job, + ValueChanged>? onData, + ValueChanged>? onError, + ArgsType? args, + List? keys, +}) { + return useInfiniteQuery( + job.queryKey, + (page) => job.task(page, args), + initialPage: job.initialPage, + nextPage: job.nextPage, + retryConfig: job.retryConfig, + refreshConfig: job.refreshConfig, + jsonConfig: job.jsonConfig, + onData: onData, + onError: onError, + enabled: job.enabled, + keys: keys, + ); +} diff --git a/packages/fl_query_hooks/lib/src/jobs/use_mutation_job.dart b/packages/fl_query_hooks/lib/src/jobs/use_mutation_job.dart new file mode 100644 index 0000000..5940e86 --- /dev/null +++ b/packages/fl_query_hooks/lib/src/jobs/use_mutation_job.dart @@ -0,0 +1,26 @@ +import 'package:fl_query/fl_query.dart'; +import 'package:fl_query_hooks/src/use_mutation.dart'; + +Mutation + useMutationJob({ + required MutationJob + job, + MutationOnDataFn? onData, + MutationOnErrorFn? onError, + MutationOnMutationFn? onMutate, + ArgsType? args, + List? keys, +}) { + return useMutation( + job.mutationKey, + (variables) => job.task(variables, args), + retryConfig: job.retryConfig, + onData: onData, + onError: onError, + onMutate: onMutate, + refreshQueries: job.refreshQueries, + refreshInfiniteQueries: job.refreshInfiniteQueries, + keys: keys, + ); +} diff --git a/packages/fl_query_hooks/lib/src/jobs/use_query_job.dart b/packages/fl_query_hooks/lib/src/jobs/use_query_job.dart new file mode 100644 index 0000000..24ce7fc --- /dev/null +++ b/packages/fl_query_hooks/lib/src/jobs/use_query_job.dart @@ -0,0 +1,22 @@ +import 'package:fl_query/fl_query.dart'; +import 'package:fl_query_hooks/src/use_query.dart'; +import 'package:flutter/material.dart'; + +Query useQueryJob({ + required QueryJob job, + ValueChanged? onData, + ValueChanged? onError, + ArgsType? args, +}) { + return useQuery( + job.queryKey, + () => job.task(args), + initial: job.initial, + retryConfig: job.retryConfig, + refreshConfig: job.refreshConfig, + jsonConfig: job.jsonConfig, + onData: onData, + onError: onError, + enabled: job.enabled, + ); +}