diff --git a/package.json b/package.json index dac4ce5f..61c3a37b 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "validate": "run-p lint test:ci test:e2e:headless" }, "dependencies": { - "@tanstack/react-query": "4.36.1", + "@tanstack/react-query": "5.17.0", "react": "18.2.0", "react-dom": "18.2.0", "react-router-dom": "6.16.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 69bd9337..ca29e372 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ overrides: dependencies: '@tanstack/react-query': - specifier: 4.36.1 - version: 4.36.1(react-dom@18.2.0)(react@18.2.0) + specifier: 5.17.0 + version: 5.17.0(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -2389,26 +2389,17 @@ packages: tailwindcss: 3.3.3(ts-node@10.9.1) dev: true - /@tanstack/query-core@4.36.1: - resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==} + /@tanstack/query-core@5.17.0: + resolution: {integrity: sha512-LoBaPtbMY26kRS+ohII4thTsWkJJsXKGitOLikTo2aqPA4yy7cfFJITs8DRnuERT7tLF5xfG9Lnm33Vp/38Vmw==} dev: false - /@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==} + /@tanstack/react-query@5.17.0(react@18.2.0): + resolution: {integrity: sha512-iNSn6ZA7mHUjrT0a271eKoa1oR1HznlrGbb475awft1kuP3zrhyUCrI8tlGowOr7zRoAxJholjwxO+gfz1IObw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true + react: ^18.0.0 dependencies: - '@tanstack/query-core': 4.36.1 + '@tanstack/query-core': 5.17.0 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) dev: false /@testing-library/cypress@10.0.1(cypress@13.3.1): @@ -3536,7 +3527,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /ci-info@3.8.0: @@ -5057,14 +5048,6 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -7611,7 +7594,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rollup@4.9.2: @@ -8668,14 +8651,6 @@ packages: requires-port: 1.0.0 dev: true - /use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true diff --git a/src/pages/Details.tsx b/src/pages/Details.tsx index a362c152..5f940b53 100644 --- a/src/pages/Details.tsx +++ b/src/pages/Details.tsx @@ -1,9 +1,9 @@ +import { useQuery } from '@tanstack/react-query' import getFruits from 'api/getFruits' import Head from 'components/Head' import ImageAttribution from 'components/ImageAttribution' import LoadingOrError from 'components/LoadingOrError' import type { ReactElement } from 'react' -import { useQuery } from '@tanstack/react-query' import { Link, Navigate, useParams } from 'react-router-dom' import { useMediaQuery } from 'utils' @@ -14,8 +14,11 @@ export default function DetailsPage(): ReactElement { const isTabletAndUp = useMediaQuery('(min-width: 600px)') const { fruitName } = useParams() - const { isLoading, isError, error, data } = useQuery(['fruits'], getFruits) - if (isLoading || isError) { + const { isPending, isError, error, data } = useQuery({ + queryKey: ['fruits'], + queryFn: getFruits + }) + if (isPending || isError) { return } diff --git a/src/pages/Gallery.tsx b/src/pages/Gallery.tsx index aea98a04..a2dcaeb1 100644 --- a/src/pages/Gallery.tsx +++ b/src/pages/Gallery.tsx @@ -1,13 +1,16 @@ +import { useQuery } from '@tanstack/react-query' import getFruits from 'api/getFruits' import Fruit from 'components/Fruit' import Head from 'components/Head' import LoadingOrError from 'components/LoadingOrError' import type { ReactElement } from 'react' -import { useQuery } from '@tanstack/react-query' export default function GalleryPage(): ReactElement { - const { isLoading, isError, error, data } = useQuery(['fruits'], getFruits) - if (isLoading || isError) { + const { isPending, isError, error, data } = useQuery({ + queryKey: ['fruits'], + queryFn: getFruits + }) + if (isPending || isError) { return } diff --git a/src/testUtils.tsx b/src/testUtils.tsx index c3cea2a0..d3b867ca 100644 --- a/src/testUtils.tsx +++ b/src/testUtils.tsx @@ -7,7 +7,7 @@ const queryClient = new QueryClient({ defaultOptions: { queries: { retry: false, - cacheTime: 0 + gcTime: 0 } } })