Skip to content

Commit

Permalink
🩹 fix(makeDebouncedResultsQuery): Fix loading flicker.
Browse files Browse the repository at this point in the history
By leveraging new generic hook `useQuery`.
  • Loading branch information
make-github-pseudonymous-again committed Jan 1, 2025
1 parent cd5875d commit 0eb9b40
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions imports/api/makeDebouncedResultsQuery.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import {type DependencyList, useEffect, useRef} from 'react';

import type PublicationEndpoint from './publication/PublicationEndpoint';
import useSubscription from './publication/useSubscription';
import useCursor from './publication/useCursor';
import type Collection from './Collection';
import type Document from './Document';
import type UserQuery from './query/UserQuery';
import queryToSelectorOptionsPair from './query/queryToSelectorOptionsPair';
import useQuery from './publication/useQuery';

const init = [];

Expand All @@ -18,17 +17,16 @@ const makeDebouncedResultsQuery =
(query: UserQuery<T>, deps: DependencyList) => {
const lastValue = useRef<U[]>(init);

const isLoading = useSubscription(publication, [query]);
const loadingSubscription = isLoading();

const [selector, options] = queryToSelectorOptionsPair(query);
const {loading: loadingResults, results: currentValue} = useCursor(
() => collection.find(selector, options),
const {loading, results: currentValue} = useQuery(
publication,
[query],
() => {
const [selector, options] = queryToSelectorOptionsPair(query);
return collection.find(selector, options);
},
deps,
);

const loading = loadingSubscription || loadingResults;

useEffect(() => {
if (!loading) {
lastValue.current = currentValue;
Expand Down

0 comments on commit 0eb9b40

Please sign in to comment.