Skip to content

Commit 10b6e52

Browse files
committed
store refetchIntervalId and fix refetchInterval comparison
1 parent 63a6c6f commit 10b6e52

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/queryCache.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export function makeQueryCache() {
110110

111111
if (query) {
112112
Object.assign(query, { queryVariables, queryFn })
113-
query.config = {...query.config, ...config };
113+
query.config = { ...query.config, ...config }
114114
} else {
115115
query = makeQuery({
116116
queryKey,

src/useBaseQuery.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,18 +92,21 @@ export function useBaseQuery(queryKey, queryVariables, queryFn, config = {}) {
9292
const query = queryRef.current
9393
if (
9494
config.refetchInterval &&
95-
(!query.refetchInterval || config.refetchInterval < query.refetchInterval)
95+
(!query.currentRefetchInterval ||
96+
// shorter interval should override previous one
97+
config.refetchInterval < query.currentRefetchInterval)
9698
) {
97-
clearInterval(query.refetchInterval)
98-
query.refetchInterval = setInterval(() => {
99+
query.currentRefetchInterval = config.refetchInterval
100+
clearInterval(query.refetchIntervalId)
101+
query.refetchIntervalId = setInterval(() => {
99102
if (isDocumentVisible() || config.refetchIntervalInBackground) {
100103
refetch().catch(Console.error)
101104
}
102105
}, config.refetchInterval)
103106

104107
return () => {
105-
clearInterval(query.refetchInterval)
106-
delete query.refetchInterval
108+
clearInterval(query.refetchIntervalId)
109+
delete query.refetchIntervalId
107110
}
108111
}
109112
}, [config.refetchInterval, config.refetchIntervalInBackground, refetch])

0 commit comments

Comments
 (0)