chore: remove _forbidden
This commit is contained in:
@@ -1,77 +0,0 @@
|
|||||||
import 'dart:async';
|
|
||||||
|
|
||||||
import 'package:fl_query/fl_query.dart';
|
|
||||||
import 'package:fl_query_hooks/src/use_query_client.dart';
|
|
||||||
import 'package:fl_query_hooks/src/utils/use_updater.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
||||||
|
|
||||||
Query<DataType, ErrorType> useQuery<DataType, ErrorType>(
|
|
||||||
final String queryKey,
|
|
||||||
final QueryFn<DataType> queryFn, {
|
|
||||||
final DataType? initial,
|
|
||||||
final RetryConfig retryConfig = DefaultConstants.retryConfig,
|
|
||||||
final RefreshConfig refreshConfig = DefaultConstants.refreshConfig,
|
|
||||||
final JsonConfig<DataType>? jsonConfig,
|
|
||||||
final ValueChanged<DataType>? onData,
|
|
||||||
final ValueChanged<ErrorType>? onError,
|
|
||||||
|
|
||||||
// hook specific
|
|
||||||
final bool enabled = true,
|
|
||||||
}) {
|
|
||||||
assert(
|
|
||||||
(jsonConfig != null && enabled) || jsonConfig == null,
|
|
||||||
'jsonConfig is only supported when enabled is true',
|
|
||||||
);
|
|
||||||
|
|
||||||
final client = useQueryClient();
|
|
||||||
final update = useUpdater();
|
|
||||||
|
|
||||||
final query = useMemoized(
|
|
||||||
() => client.createQuery<DataType, ErrorType>(
|
|
||||||
queryKey,
|
|
||||||
queryFn,
|
|
||||||
initial: initial,
|
|
||||||
retryConfig: retryConfig,
|
|
||||||
refreshConfig: refreshConfig,
|
|
||||||
jsonConfig: jsonConfig,
|
|
||||||
),
|
|
||||||
[queryKey],
|
|
||||||
);
|
|
||||||
|
|
||||||
final oldQueryFn = usePrevious(queryFn);
|
|
||||||
final oldOnData = usePrevious(onData);
|
|
||||||
final oldOnError = usePrevious(onError);
|
|
||||||
|
|
||||||
useEffect(() {
|
|
||||||
final removeListener = query.addListener(update);
|
|
||||||
if (enabled) {
|
|
||||||
query.fetch();
|
|
||||||
}
|
|
||||||
return removeListener;
|
|
||||||
}, [query, enabled]);
|
|
||||||
|
|
||||||
useEffect(() {
|
|
||||||
StreamSubscription? dataSubscription;
|
|
||||||
StreamSubscription? errorSubscription;
|
|
||||||
if (onData != null || oldOnData != onData || query.key != queryKey) {
|
|
||||||
dataSubscription = query.dataStream.listen(onData);
|
|
||||||
}
|
|
||||||
if (onError != null || oldOnError != onError || query.key != queryKey) {
|
|
||||||
errorSubscription = query.errorStream.listen(onError);
|
|
||||||
}
|
|
||||||
return () {
|
|
||||||
dataSubscription?.cancel();
|
|
||||||
errorSubscription?.cancel();
|
|
||||||
};
|
|
||||||
}, [onData, onError, query]);
|
|
||||||
|
|
||||||
useEffect(() {
|
|
||||||
if (oldQueryFn != queryFn && queryKey == query.key) {
|
|
||||||
query.updateQueryFn(queryFn);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}, [queryFn, oldQueryFn]);
|
|
||||||
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user