periodic staleData refetch functionality

+Query initialData support
+Query manual update support
+Query.reset support
This commit is contained in:
Kingkor Roy Tirtho
2022-05-28 18:28:20 +06:00
parent 4eadc99d15
commit aba6d1852b
6 changed files with 222 additions and 69 deletions
+20 -1
View File
@@ -6,10 +6,24 @@ class QueryBuilder<T> extends StatefulWidget {
final Widget Function(BuildContext, Query<T>) builder;
final QueryTaskFunction<T> task;
final String queryKey;
final Duration? staleTime;
final int retries;
final T? initialData;
final Duration retryDelay;
final QueryListener<T>? onData;
final QueryListener<dynamic>? onError;
const QueryBuilder({
required this.builder,
required this.task,
required this.queryKey,
this.initialData,
this.staleTime,
this.retryDelay = const Duration(milliseconds: 200),
this.retries = 3,
this.onData,
this.onError,
Key? key,
}) : super(key: key);
@@ -25,7 +39,12 @@ class _QueryBuilderState<T> extends State<QueryBuilder<T>> {
await QueryBowl.of(context).fetchQuery(Query<T>(
queryKey: widget.queryKey,
task: widget.task,
staleTime: QueryBowl.of(context).staleTime,
staleTime: widget.staleTime ?? QueryBowl.of(context).staleTime,
retries: widget.retries,
initialData: widget.initialData,
retryDelay: widget.retryDelay,
onData: widget.onData,
onError: widget.onError,
));
});
}