(
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
options: QueryObserverOptions<
TQueryFnData,
TError,
TData,
TQueryData,
TQueryKey
>
)
| 457 | } |
| 458 | |
| 459 | protected createResult( |
| 460 | query: Query<TQueryFnData, TError, TQueryData, TQueryKey>, |
| 461 | options: QueryObserverOptions< |
| 462 | TQueryFnData, |
| 463 | TError, |
| 464 | TData, |
| 465 | TQueryData, |
| 466 | TQueryKey |
| 467 | > |
| 468 | ): QueryObserverResult<TData, TError> { |
| 469 | const prevQuery = this.currentQuery |
| 470 | const prevOptions = this.options |
| 471 | const prevResult = this.currentResult |
| 472 | const prevResultState = this.currentResultState |
| 473 | const prevResultOptions = this.currentResultOptions |
| 474 | const queryChange = query !== prevQuery |
| 475 | const queryInitialState = queryChange |
| 476 | ? query.state |
| 477 | : this.currentQueryInitialState |
| 478 | const prevQueryResult = queryChange |
| 479 | ? this.currentResult |
| 480 | : this.previousQueryResult |
| 481 | |
| 482 | const { state } = query |
| 483 | let { dataUpdatedAt, error, errorUpdatedAt, isFetching, status } = state |
| 484 | let isPreviousData = false |
| 485 | let isPlaceholderData = false |
| 486 | let data: TData | undefined |
| 487 | |
| 488 | // Optimistically set result in fetching state if needed |
| 489 | // @ts-ignore |
| 490 | if (options.optimisticResults) { |
| 491 | const mounted = this.hasListeners() |
| 492 | |
| 493 | const fetchOnMount = !mounted && shouldFetchOnMount(query, options) |
| 494 | |
| 495 | const fetchOptionally = |
| 496 | mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions) |
| 497 | |
| 498 | if (fetchOnMount || fetchOptionally) { |
| 499 | isFetching = true |
| 500 | if (!dataUpdatedAt) { |
| 501 | status = 'loading' |
| 502 | } |
| 503 | } |
| 504 | } |
| 505 | |
| 506 | // Keep previous data if needed |
| 507 | if ( |
| 508 | options.keepPreviousData && |
| 509 | !state.dataUpdateCount && |
| 510 | prevQueryResult?.isSuccess && |
| 511 | status !== 'error' |
| 512 | ) { |
| 513 | data = prevQueryResult.data |
| 514 | dataUpdatedAt = prevQueryResult.dataUpdatedAt |
| 515 | status = prevQueryResult.status |
| 516 | isPreviousData = true |
no test coverage detected