|
3 | 3 | isValidTimeout,
|
4 | 4 | noop,
|
5 | 5 | replaceData,
|
| 6 | + resolveStaleTime, |
6 | 7 | shallowEqualObjects,
|
7 | 8 | timeUntilStale,
|
8 | 9 | } from './utils'
|
@@ -190,7 +191,8 @@ export class QueryObserver<
|
190 | 191 | mounted &&
|
191 | 192 | (this.#currentQuery !== prevQuery ||
|
192 | 193 | this.options.enabled !== prevOptions.enabled ||
|
193 |
| - this.options.staleTime !== prevOptions.staleTime) |
| 194 | + resolveStaleTime(this.options.staleTime, this.#currentQuery) !== |
| 195 | + resolveStaleTime(prevOptions.staleTime, this.#currentQuery)) |
194 | 196 | ) {
|
195 | 197 | this.#updateStaleTimeout()
|
196 | 198 | }
|
@@ -338,19 +340,16 @@ export class QueryObserver<
|
338 | 340 |
|
339 | 341 | #updateStaleTimeout(): void {
|
340 | 342 | this.#clearStaleTimeout()
|
| 343 | + const staleTime = resolveStaleTime( |
| 344 | + this.options.staleTime, |
| 345 | + this.#currentQuery, |
| 346 | + ) |
341 | 347 |
|
342 |
| - if ( |
343 |
| - isServer || |
344 |
| - this.#currentResult.isStale || |
345 |
| - !isValidTimeout(this.options.staleTime) |
346 |
| - ) { |
| 348 | + if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) { |
347 | 349 | return
|
348 | 350 | }
|
349 | 351 |
|
350 |
| - const time = timeUntilStale( |
351 |
| - this.#currentResult.dataUpdatedAt, |
352 |
| - this.options.staleTime, |
353 |
| - ) |
| 352 | + const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime) |
354 | 353 |
|
355 | 354 | // The timeout is sometimes triggered 1 ms before the stale time expiration.
|
356 | 355 | // To mitigate this issue we always add 1 ms to the timeout.
|
@@ -742,7 +741,10 @@ function isStale(
|
742 | 741 | query: Query<any, any, any, any>,
|
743 | 742 | options: QueryObserverOptions<any, any, any, any, any>,
|
744 | 743 | ): boolean {
|
745 |
| - return options.enabled !== false && query.isStaleByTime(options.staleTime) |
| 744 | + return ( |
| 745 | + options.enabled !== false && |
| 746 | + query.isStaleByTime(resolveStaleTime(options.staleTime, query)) |
| 747 | + ) |
746 | 748 | }
|
747 | 749 |
|
748 | 750 | // this function would decide if we will update the observer's 'current'
|
|
0 commit comments