From 500fc1c93486b899925a5c74c6b74bfd73b5ca13 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 1 Apr 2026 15:39:26 -0700 Subject: [PATCH] Update React Query to latest (#10126) --- package.json | 6 ++-- src/state/queries/resolve-uri.ts | 58 ++++++++++++++++++-------------- yarn.lock | 49 ++++++++++++++------------- 3 files changed, 60 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 2f2bad9932..36f7ec6152 100644 --- a/package.json +++ b/package.json @@ -116,9 +116,9 @@ "@react-navigation/native": "^7.1.33", "@react-navigation/native-stack": "^7.14.4", "@sentry/react-native": "~6.20.0", - "@tanstack/query-async-storage-persister": "^5.25.0", - "@tanstack/react-query": "5.25.0", - "@tanstack/react-query-persist-client": "^5.25.0", + "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-persist-client": "^5.95.2", "@tiptap/core": "^2.9.1", "@tiptap/extension-document": "^2.9.1", "@tiptap/extension-hard-break": "^2.9.1", diff --git a/src/state/queries/resolve-uri.ts b/src/state/queries/resolve-uri.ts index b40e380724..a4667c9228 100644 --- a/src/state/queries/resolve-uri.ts +++ b/src/state/queries/resolve-uri.ts @@ -1,9 +1,5 @@ -import {AtUri} from '@atproto/api' -import { - type QueryClient, - useQuery, - type UseQueryResult, -} from '@tanstack/react-query' +import {AtUri, type BskyAgent} from '@atproto/api' +import {type QueryClient, queryOptions, useQuery} from '@tanstack/react-query' import {STALE} from '#/state/queries' import {useAgent} from '#/state/session' @@ -12,26 +8,12 @@ import {useUnstableProfileViewCache} from './profile' const RQKEY_ROOT = 'resolved-did' export const RQKEY = (didOrHandle: string) => [RQKEY_ROOT, didOrHandle] -type UriUseQueryResult = UseQueryResult<{did: string; uri: string}, Error> -export function useResolveUriQuery(uri: string | undefined): UriUseQueryResult { - const urip = new AtUri(uri || '') - const res = useResolveDidQuery(urip.host) - if (res.data) { - // @ts-expect-error TODO new-sdk-migration - urip.host = res.data - return { - ...res, - data: {did: urip.host, uri: urip.toString()}, - } as UriUseQueryResult - } - return res as UriUseQueryResult -} - -export function useResolveDidQuery(didOrHandle: string | undefined) { - const agent = useAgent() - const {getUnstableProfile} = useUnstableProfileViewCache() - - return useQuery({ +const resolvedDidQueryOptions = ( + agent: BskyAgent, + getUnstableProfile: (did: string) => {did: string} | undefined, + didOrHandle: string | undefined, +) => + queryOptions({ staleTime: STALE.HOURS.ONE, queryKey: RQKEY(didOrHandle ?? ''), queryFn: async () => { @@ -50,6 +32,30 @@ export function useResolveDidQuery(didOrHandle: string | undefined) { }, enabled: !!didOrHandle, }) + +export function useResolveUriQuery(uri: string | undefined) { + const urip = new AtUri(uri || '') + const host = urip.host + + const agent = useAgent() + const {getUnstableProfile} = useUnstableProfileViewCache() + + return useQuery({ + ...resolvedDidQueryOptions(agent, getUnstableProfile, host), + select: did => ({ + did, + uri: urip.toString(), + }), + }) +} + +export function useResolveDidQuery(didOrHandle: string | undefined) { + const agent = useAgent() + const {getUnstableProfile} = useUnstableProfileViewCache() + + return useQuery( + resolvedDidQueryOptions(agent, getUnstableProfile, didOrHandle), + ) } export function precacheResolvedUri( diff --git a/yarn.lock b/yarn.lock index 63b5b62524..4a5d8dc52e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5102,38 +5102,39 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@tanstack/query-async-storage-persister@^5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-async-storage-persister/-/query-async-storage-persister-5.25.0.tgz#0e8a2a781b8e32a81a5d02a688d6fcdfd055235b" - integrity sha512-58UTp1CuLr2mehsJRMOd8IZPtYGHFeL+uHnHyRd1kmbwo7wDaa8HXstiBdTRq5KokxIXy9FiFbA06LtKuOiwMQ== +"@tanstack/query-async-storage-persister@^5.95.2": + version "5.95.2" + resolved "https://registry.yarnpkg.com/@tanstack/query-async-storage-persister/-/query-async-storage-persister-5.95.2.tgz#0c7ed1c8013823e2d5abbb8d55bc0e9305abf7e0" + integrity sha512-ZhPIHH8J833OVZhEWwwdOk0uhY94d9Wgdnq97JoQx4Ui4xx4Dh6e7WPUrjlUWo88Yqi4Ij+T1o/VR7Vlbnkbjw== dependencies: - "@tanstack/query-persist-client-core" "5.25.0" + "@tanstack/query-core" "5.95.2" + "@tanstack/query-persist-client-core" "5.95.2" -"@tanstack/query-core@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.25.0.tgz#e08ed0a9fad34c8005d1a282e57280031ac50cdc" - integrity sha512-vlobHP64HTuSE68lWF1mEhwSRC5Q7gaT+a/m9S+ItuN+ruSOxe1rFnR9j0ACWQ314BPhBEVKfBQ6mHL0OWfdbQ== +"@tanstack/query-core@5.95.2": + version "5.95.2" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.95.2.tgz#9e3299d0c1c8785dd9e3d0cac1993e45f35113f2" + integrity sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ== -"@tanstack/query-persist-client-core@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-5.25.0.tgz#52fa634a8067d7b965854a532a33077fd4df0eff" - integrity sha512-sEUsEZ/XWkOosO45CDBI5nj5woCS+DUd9Dk8pGpU8MkeH0EVd3p4N5CdbjNhrreyy5Krf3rpNaiRN9ygLX/rWA== +"@tanstack/query-persist-client-core@5.95.2": + version "5.95.2" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-5.95.2.tgz#1c94a87c9886a8e1c6a0a3ebbb325afdaf486f81" + integrity sha512-Opfj34WZ594YXpEcZEs8WBiyPGrjrKlGILfk/Ss283uwWQ36C5nX3tRY/bBiXmM82KWauUuNvahwGwiyco/8cQ== dependencies: - "@tanstack/query-core" "5.25.0" + "@tanstack/query-core" "5.95.2" -"@tanstack/react-query-persist-client@^5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-5.25.0.tgz#ecbd1362cd6fd94e723d54f5af477d0812852dab" - integrity sha512-j1+GyFj4UQGWuiFZoDUVJZS+wxqKd9SGvPlyHG619zzYNN+QQu4B5uvvHc6U8MroM377EOBOuLKK3W6qsAdahQ== +"@tanstack/react-query-persist-client@^5.95.2": + version "5.95.2" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-5.95.2.tgz#4d6fe899513725978e86c13c1727ee7e393eaca5" + integrity sha512-i3fvzD8gaLgQyFvRc/+iSUr60aL31tMN+5QM11zdPRg0K9CirIQjHD7WgXFBnD29KJDvcjcv7OrIBaPwZ+H9xw== dependencies: - "@tanstack/query-persist-client-core" "5.25.0" + "@tanstack/query-persist-client-core" "5.95.2" -"@tanstack/react-query@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.25.0.tgz#f4dac794cf10dd956aa56dbbdf67049a5ba2669d" - integrity sha512-u+n5R7mLO7RmeiIonpaCRVXNRWtZEef/aVZ/XGWRPa7trBIvGtzlfo0Ah7ZtnTYfrKEVwnZ/tzRCBcoiqJ/tFw== +"@tanstack/react-query@^5.95.2": + version "5.95.2" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.95.2.tgz#7daf77342a4e374c22fad88bb98ea13fc19ae086" + integrity sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA== dependencies: - "@tanstack/query-core" "5.25.0" + "@tanstack/query-core" "5.95.2" "@testing-library/react-native@^13.2.0": version "13.2.0"