From dc33589d0e339da8b3e2b46fd7b638efbf753134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Thu, 26 Feb 2026 20:01:14 +0100 Subject: [PATCH] nicolium: remove setQueryData/getQueryData explict typing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/pl-fe/src/actions/importer.ts | 4 +- packages/pl-fe/src/columns/notifications.tsx | 25 ++++----- .../pl-fe/src/queries/accounts/use-account.ts | 5 +- .../src/queries/accounts/use-accounts.ts | 2 +- .../src/queries/accounts/use-antennas.ts | 2 +- .../pl-fe/src/queries/accounts/use-circles.ts | 13 ++--- .../queries/accounts/use-follow-requests.ts | 21 +++---- .../pl-fe/src/queries/accounts/use-lists.ts | 15 ++--- .../src/queries/accounts/use-relationship.ts | 21 +++---- .../src/queries/admin/use-announcements.ts | 34 +++++------ .../src/queries/admin/use-suggest-account.ts | 10 ++-- .../src/queries/admin/use-verify-account.ts | 8 +-- .../conversations/use-conversations.ts | 44 ++++++--------- .../src/queries/groups/use-group-blocks.ts | 28 ++++------ .../queries/groups/use-group-relationship.ts | 56 ++++++++----------- packages/pl-fe/src/queries/keys.ts | 10 ++-- .../notifications/use-notifications.ts | 45 ++++++--------- .../src/queries/settings/domain-blocks.ts | 3 +- .../pl-fe/src/queries/settings/use-filters.ts | 6 +- .../pl-fe/src/queries/statuses/use-poll.ts | 2 +- .../statuses/use-status-interactions.ts | 2 +- .../queries/timelines/use-home-timeline.ts | 2 +- .../utils/update-paginated-response.ts | 6 +- packages/pl-fe/src/stores/shoutbox.ts | 10 ++-- 24 files changed, 151 insertions(+), 223 deletions(-) diff --git a/packages/pl-fe/src/actions/importer.ts b/packages/pl-fe/src/actions/importer.ts index cdf584a85..41cc0033b 100644 --- a/packages/pl-fe/src/actions/importer.ts +++ b/packages/pl-fe/src/actions/importer.ts @@ -119,12 +119,12 @@ const importEntities = } if (!isEmpty(polls)) { for (const poll of Object.values(polls)) { - queryClient.setQueryData(queryKeys.statuses.polls.show(poll.id), poll); + queryClient.setQueryData(queryKeys.statuses.polls.show(poll.id), poll); } } if (!isEmpty(relationships)) { for (const relationship of Object.values(relationships)) { - queryClient.setQueryData( + queryClient.setQueryData( queryKeys.accountRelationships.show(relationship.id), relationship, ); diff --git a/packages/pl-fe/src/columns/notifications.tsx b/packages/pl-fe/src/columns/notifications.tsx index 76f469634..09a8ae676 100644 --- a/packages/pl-fe/src/columns/notifications.tsx +++ b/packages/pl-fe/src/columns/notifications.tsx @@ -1,4 +1,4 @@ -import { InfiniteData, useQueryClient } from '@tanstack/react-query'; +import { useQueryClient } from '@tanstack/react-query'; import clsx from 'clsx'; import debounce from 'lodash/debounce'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; @@ -277,20 +277,17 @@ const NotificationsColumn: React.FC = ({ multiColumn }) => }, [notifications, markNotificationsRead]); const handleRefresh = useCallback(() => { - queryClient.setQueryData>( - queryKeys.notifications.list(activeFilter), - (data) => { - if (!data) return data; + queryClient.setQueryData(queryKeys.notifications.list(activeFilter), (data) => { + if (!data) return data; - // from https://github.com/TanStack/query/discussions/875#discussioncomment-754458 - // TODO: maybe needed in more places so maybe make a helper for this - return { - ...data, - pages: data.pages.slice(0, 1), - pageParams: data.pageParams.slice(0, 1), - }; - }, - ); + // from https://github.com/TanStack/query/discussions/875#discussioncomment-754458 + // TODO: maybe needed in more places so maybe make a helper for this + return { + ...data, + pages: data.pages.slice(0, 1), + pageParams: data.pageParams.slice(0, 1), + }; + }); refetch().catch(console.error); }, [refetch]); diff --git a/packages/pl-fe/src/queries/accounts/use-account.ts b/packages/pl-fe/src/queries/accounts/use-account.ts index 6eb3bd30a..f1db88299 100644 --- a/packages/pl-fe/src/queries/accounts/use-account.ts +++ b/packages/pl-fe/src/queries/accounts/use-account.ts @@ -35,10 +35,7 @@ const useAccount = (accountId?: string, withRelationship = false) => { queryKey: queryKeys.accounts.show(accountId!), queryFn: async () => { const account = await client.accounts.getAccount(accountId!); - queryClient.setQueryData( - queryKeys.accounts.lookup(account.acct.toLowerCase()), - account.id, - ); + queryClient.setQueryData(queryKeys.accounts.lookup(account.acct.toLowerCase()), account.id); return account; }, enabled: !!accountId, diff --git a/packages/pl-fe/src/queries/accounts/use-accounts.ts b/packages/pl-fe/src/queries/accounts/use-accounts.ts index e96d9926a..a64ccb01e 100644 --- a/packages/pl-fe/src/queries/accounts/use-accounts.ts +++ b/packages/pl-fe/src/queries/accounts/use-accounts.ts @@ -15,7 +15,7 @@ const useAccounts = (accountIds: Array) => { queryKey: queryKeys.accounts.show(accountId), queryFn: async () => { const response = await client.accounts.getAccount(accountId); - queryClient.setQueryData( + queryClient.setQueryData( queryKeys.accounts.lookup(response.acct.toLowerCase()), response.id, ); diff --git a/packages/pl-fe/src/queries/accounts/use-antennas.ts b/packages/pl-fe/src/queries/accounts/use-antennas.ts index 5b079b5ab..df7966208 100644 --- a/packages/pl-fe/src/queries/accounts/use-antennas.ts +++ b/packages/pl-fe/src/queries/accounts/use-antennas.ts @@ -45,7 +45,7 @@ const useDeleteAntenna = () => { mutationKey: ['antennas', 'delete'], mutationFn: (antennaId: string) => client.antennas.deleteAntenna(antennaId), onSuccess: (_, deletedAntennaId) => { - queryClient.setQueryData>(queryKeys.antennas.all, (prevData) => + queryClient.setQueryData(queryKeys.antennas.all, (prevData) => prevData?.filter(({ id }) => id !== deletedAntennaId), ); }, diff --git a/packages/pl-fe/src/queries/accounts/use-circles.ts b/packages/pl-fe/src/queries/accounts/use-circles.ts index 0ed04c4b9..5cba682ac 100644 --- a/packages/pl-fe/src/queries/accounts/use-circles.ts +++ b/packages/pl-fe/src/queries/accounts/use-circles.ts @@ -1,9 +1,4 @@ -import { - type InfiniteData, - type UseQueryResult, - useMutation, - useQuery, -} from '@tanstack/react-query'; +import { type UseQueryResult, useMutation, useQuery } from '@tanstack/react-query'; import { useClient } from '@/hooks/use-client'; import { useFeatures } from '@/hooks/use-features'; @@ -14,7 +9,7 @@ import { filterById } from '../utils/filter-id'; import { makePaginatedResponseQuery } from '../utils/make-paginated-response-query'; import { minifyAccountList } from '../utils/minify-list'; -import type { Circle, PaginatedResponse } from 'pl-api'; +import type { Circle } from 'pl-api'; function useCircles(select: (data: Array) => T): UseQueryResult; function useCircles(): UseQueryResult, Error>; @@ -50,7 +45,7 @@ const useDeleteCircle = () => { mutationKey: ['circles', 'delete'], mutationFn: (circleId: string) => client.circles.deleteCircle(circleId), onSuccess: (_, deletedCircleId) => { - queryClient.setQueryData>(queryKeys.circles.all, (prevData) => + queryClient.setQueryData(queryKeys.circles.all, (prevData) => prevData?.filter(({ id }) => id !== deletedCircleId), ); }, @@ -93,7 +88,7 @@ const useRemoveAccountsFromCircle = (circleId: string) => { mutationFn: (accountIds: Array) => client.circles.deleteCircleAccounts(circleId, accountIds), onSettled: (_, __, accountIds) => { - queryClient.setQueryData>>( + queryClient.setQueryData( queryKeys.accountsLists.circleMembers(circleId), filterById(accountIds), ); diff --git a/packages/pl-fe/src/queries/accounts/use-follow-requests.ts b/packages/pl-fe/src/queries/accounts/use-follow-requests.ts index dfe9116e0..60a11aeaa 100644 --- a/packages/pl-fe/src/queries/accounts/use-follow-requests.ts +++ b/packages/pl-fe/src/queries/accounts/use-follow-requests.ts @@ -11,19 +11,16 @@ import { filterById } from '../utils/filter-id'; import type { PaginatedResponse, PlApiClient } from 'pl-api'; const appendFollowRequest = (accountId: string) => - queryClient.setQueryData>>( - queryKeys.accountsLists.followRequests, - (data) => { - if (!data || data.pages.some((page) => page.items.includes(accountId))) return data; + queryClient.setQueryData(queryKeys.accountsLists.followRequests, (data) => { + if (!data || data.pages.some((page) => page.items.includes(accountId))) return data; - return { - ...data, - pages: data.pages.map((page, index) => - index === 0 ? { ...page, items: [accountId, ...page.items] } : page, - ), - }; - }, - ); + return { + ...data, + pages: data.pages.map((page, index) => + index === 0 ? { ...page, items: [accountId, ...page.items] } : page, + ), + }; + }); const removeFollowRequest = (accountId: string) => queryClient.setQueryData(queryKeys.accountsLists.followRequests, filterById(accountId)); diff --git a/packages/pl-fe/src/queries/accounts/use-lists.ts b/packages/pl-fe/src/queries/accounts/use-lists.ts index 978c3b1af..90764b31e 100644 --- a/packages/pl-fe/src/queries/accounts/use-lists.ts +++ b/packages/pl-fe/src/queries/accounts/use-lists.ts @@ -1,4 +1,4 @@ -import { type InfiniteData, useMutation, useQuery } from '@tanstack/react-query'; +import { useMutation, useQuery } from '@tanstack/react-query'; import { useClient } from '@/hooks/use-client'; import { useFeatures } from '@/hooks/use-features'; @@ -9,7 +9,7 @@ import { filterById } from '../utils/filter-id'; import { makePaginatedResponseQuery } from '../utils/make-paginated-response-query'; import { minifyAccountList } from '../utils/minify-list'; -import type { CreateListParams, List, PaginatedResponse, UpdateListParams } from 'pl-api'; +import type { CreateListParams, List, UpdateListParams } from 'pl-api'; const useLists = (select?: (data: Array) => T) => { const client = useClient(); @@ -43,7 +43,7 @@ const useDeleteList = () => { mutationKey: ['lists', 'delete'], mutationFn: (listId: string) => client.lists.deleteList(listId), onSuccess: (_, deletedListId) => { - queryClient.setQueryData>(queryKeys.lists.all, (prevData) => + queryClient.setQueryData(queryKeys.lists.all, (prevData) => prevData?.filter(({ id }) => id !== deletedListId), ); }, @@ -74,7 +74,7 @@ const useAddAccountsToList = (listId: string) => { onSettled: (_, __, accountIds) => { queryClient.invalidateQueries({ queryKey: queryKeys.accountsLists.listMembers(listId) }); accountIds.forEach((accountId) => - queryClient.setQueryData>(queryKeys.lists.forAccount(accountId), (listIds) => + queryClient.setQueryData(queryKeys.lists.forAccount(accountId), (listIds) => listIds ? [...listIds, listId] : undefined, ), ); @@ -89,12 +89,9 @@ const useRemoveAccountsFromList = (listId: string) => { mutationKey: ['accountsLists', 'lists', listId, 'remove'], mutationFn: (accountIds: Array) => client.lists.deleteListAccounts(listId, accountIds), onSettled: (_, __, accountIds) => { - queryClient.setQueryData>>( - queryKeys.accountsLists.listMembers(listId), - filterById(accountIds), - ); + queryClient.setQueryData(queryKeys.accountsLists.listMembers(listId), filterById(accountIds)); accountIds.forEach((accountId) => - queryClient.setQueryData>(queryKeys.lists.forAccount(accountId), (listIds) => + queryClient.setQueryData(queryKeys.lists.forAccount(accountId), (listIds) => listIds?.filter((id) => id !== listId), ), ); diff --git a/packages/pl-fe/src/queries/accounts/use-relationship.ts b/packages/pl-fe/src/queries/accounts/use-relationship.ts index a187d9474..eb39dcfd5 100644 --- a/packages/pl-fe/src/queries/accounts/use-relationship.ts +++ b/packages/pl-fe/src/queries/accounts/use-relationship.ts @@ -14,7 +14,6 @@ import { useOwnAccount } from '@/hooks/use-own-account'; import { queryKeys } from '@/queries/keys'; import { useContextsActions } from '@/stores/contexts'; -import type { MinifiedSuggestion } from '../trends/use-suggested-accounts'; import type { BlockAccountParams, FollowAccountParams, @@ -174,12 +173,10 @@ const useBlockAccountMutation = (accountId: string) => { onSuccess: (data) => { queryClient.setQueryData(queryKeys.accountRelationships.show(accountId), data); - queryClient.setQueryData>( - queryKeys.suggestions.all, - (suggestions) => - suggestions - ? suggestions.filter((suggestion) => suggestion.account_id !== accountId) - : undefined, + queryClient.setQueryData(queryKeys.suggestions.all, (suggestions) => + suggestions + ? suggestions.filter((suggestion) => suggestion.account_id !== accountId) + : undefined, ); queryClient.invalidateQueries({ @@ -247,12 +244,10 @@ const useMuteAccountMutation = (accountId: string) => { onSuccess: (data) => { queryClient.setQueryData(queryKeys.accountRelationships.show(accountId), data); - queryClient.setQueryData>( - queryKeys.suggestions.all, - (suggestions) => - suggestions - ? suggestions.filter((suggestion) => suggestion.account_id !== accountId) - : undefined, + queryClient.setQueryData(queryKeys.suggestions.all, (suggestions) => + suggestions + ? suggestions.filter((suggestion) => suggestion.account_id !== accountId) + : undefined, ); queryClient.invalidateQueries({ diff --git a/packages/pl-fe/src/queries/admin/use-announcements.ts b/packages/pl-fe/src/queries/admin/use-announcements.ts index db259d4cb..15de8f72a 100644 --- a/packages/pl-fe/src/queries/admin/use-announcements.ts +++ b/packages/pl-fe/src/queries/admin/use-announcements.ts @@ -1,9 +1,7 @@ -import { type InfiniteData, useMutation } from '@tanstack/react-query'; +import { useMutation } from '@tanstack/react-query'; import { create } from 'mutative'; import { adminAnnouncementSchema, - PaginatedResponse, - type AdminAnnouncement, type AdminCreateAnnouncementParams, type AdminUpdateAnnouncementParams, } from 'pl-api'; @@ -49,15 +47,13 @@ const useUpdateAnnouncementMutation = () => { client.admin.announcements.updateAnnouncement(id, params), retry: false, onSuccess: (data) => { - queryClient.setQueryData>>( - queryKeys.admin.announcements, - (prevData) => - create(prevData, (draft) => { - draft?.pages.forEach(({ items }) => { - const index = items.findIndex(({ id }) => id === data.id); - if (index !== -1) items[index] = v.parse(adminAnnouncementSchema, data); - }); - }), + queryClient.setQueryData(queryKeys.admin.announcements, (prevData) => + create(prevData, (draft) => { + draft?.pages.forEach(({ items }) => { + const index = items.findIndex(({ id }) => id === data.id); + if (index !== -1) items[index] = v.parse(adminAnnouncementSchema, data); + }); + }), ); queryClient.invalidateQueries({ queryKey: queryKeys.announcements.root }); }, @@ -71,14 +67,12 @@ const useDeleteAnnouncementMutation = () => { mutationFn: (id: string) => client.admin.announcements.deleteAnnouncement(id), retry: false, onSuccess: (_, deletedAnnouncementId) => { - queryClient.setQueryData>>( - queryKeys.admin.announcements, - (prevData) => - create(prevData, (draft) => { - draft?.pages.forEach( - (page) => (page.items = page.items.filter(({ id }) => id !== deletedAnnouncementId)), - ); - }), + queryClient.setQueryData(queryKeys.admin.announcements, (prevData) => + create(prevData, (draft) => { + draft?.pages.forEach( + (page) => (page.items = page.items.filter(({ id }) => id !== deletedAnnouncementId)), + ); + }), ); queryClient.invalidateQueries({ queryKey: queryKeys.announcements.root }); }, diff --git a/packages/pl-fe/src/queries/admin/use-suggest-account.ts b/packages/pl-fe/src/queries/admin/use-suggest-account.ts index d12e66807..0f971656c 100644 --- a/packages/pl-fe/src/queries/admin/use-suggest-account.ts +++ b/packages/pl-fe/src/queries/admin/use-suggest-account.ts @@ -4,8 +4,6 @@ import { useClient } from '@/hooks/use-client'; import { queryKeys } from '../keys'; -import type { Account } from 'pl-api'; - const useAdminSuggestAccountMutation = (accountId: string) => { const client = useClient(); const queryClient = useQueryClient(); @@ -14,12 +12,12 @@ const useAdminSuggestAccountMutation = (accountId: string) => { mutationKey: ['admin', 'accounts', accountId, 'suggest'], mutationFn: () => client.admin.accounts.suggestUser(accountId), onMutate: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => account ? { ...account, is_suggested: true } : undefined, ); }, onError: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => account ? { ...account, is_suggested: false } : undefined, ); }, @@ -34,12 +32,12 @@ const useAdminUnsuggestAccountMutation = (accountId: string) => { mutationKey: ['admin', 'accounts', accountId, 'unsuggest'], mutationFn: () => client.admin.accounts.unsuggestUser(accountId), onMutate: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => account ? { ...account, is_suggested: false } : undefined, ); }, onError: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => account ? { ...account, is_suggested: true } : undefined, ); }, diff --git a/packages/pl-fe/src/queries/admin/use-verify-account.ts b/packages/pl-fe/src/queries/admin/use-verify-account.ts index a4db4578b..862ee35ed 100644 --- a/packages/pl-fe/src/queries/admin/use-verify-account.ts +++ b/packages/pl-fe/src/queries/admin/use-verify-account.ts @@ -36,12 +36,12 @@ const useAdminVerifyAccountMutation = (accountId: string) => { mutationKey: ['admin', 'accounts', accountId, 'verify'], mutationFn: () => client.admin.accounts.tagUser(accountId, ['verified']), onMutate: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => setVerified(account, true), ); }, onError: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => setVerified(account, false), ); }, @@ -56,12 +56,12 @@ const useAdminUnverifyAccountMutation = (accountId: string) => { mutationKey: ['admin', 'accounts', accountId, 'unverify'], mutationFn: () => client.admin.accounts.untagUser(accountId, ['verified']), onMutate: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => setVerified(account, false), ); }, onError: () => { - queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => + queryClient.setQueryData(queryKeys.accounts.show(accountId), (account) => setVerified(account, true), ); }, diff --git a/packages/pl-fe/src/queries/conversations/use-conversations.ts b/packages/pl-fe/src/queries/conversations/use-conversations.ts index 88309e574..e40b582fb 100644 --- a/packages/pl-fe/src/queries/conversations/use-conversations.ts +++ b/packages/pl-fe/src/queries/conversations/use-conversations.ts @@ -1,9 +1,4 @@ -import { - type InfiniteData, - useInfiniteQuery, - useMutation, - useQueryClient, -} from '@tanstack/react-query'; +import { useInfiniteQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { create } from 'mutative'; import { useMemo } from 'react'; @@ -45,31 +40,28 @@ const importConversationEntities = (conversations: Conversation[]) => { const updateConversations = (conversation: Conversation) => { importConversationEntities([conversation]); - queryClient.setQueryData>>( - ['conversations'], - (data) => { - if (!data || !data.pages.length) return data; + queryClient.setQueryData(queryKeys.conversations.all, (data) => { + if (!data || !data.pages.length) return data; - return create(data, (draft) => { - const updatedConversation = minifyConversation(conversation); + return create(data, (draft) => { + const updatedConversation = minifyConversation(conversation); - let found = false; + let found = false; - for (const page of draft.pages) { - const index = page.items.findIndex((item) => item.id === updatedConversation.id); - if (index !== -1) { - page.items[index] = updatedConversation; - found = true; - break; - } + for (const page of draft.pages) { + const index = page.items.findIndex((item) => item.id === updatedConversation.id); + if (index !== -1) { + page.items[index] = updatedConversation; + found = true; + break; } + } - if (!found) { - draft.pages[0].items.unshift(updatedConversation); - } - }); - }, - ); + if (!found) { + draft.pages[0].items.unshift(updatedConversation); + } + }); + }); }; const useConversations = () => { diff --git a/packages/pl-fe/src/queries/groups/use-group-blocks.ts b/packages/pl-fe/src/queries/groups/use-group-blocks.ts index 15ec47728..a909d1552 100644 --- a/packages/pl-fe/src/queries/groups/use-group-blocks.ts +++ b/packages/pl-fe/src/queries/groups/use-group-blocks.ts @@ -1,4 +1,4 @@ -import { useMutation, type InfiniteData } from '@tanstack/react-query'; +import { useMutation } from '@tanstack/react-query'; import { useClient } from '@/hooks/use-client'; import { queryClient } from '@/queries/client'; @@ -11,25 +11,19 @@ import { filterById } from '../utils/filter-id'; import { removeGroupMember } from './use-group-members'; const appendGroupBlock = (groupId: string, accountId: string) => - queryClient.setQueryData>>( - queryKeys.accountsLists.groupBlocks(groupId), - (data) => { - if (!data || data.pages.some((page) => page.items.includes(accountId))) return data; + queryClient.setQueryData(queryKeys.accountsLists.groupBlocks(groupId), (data) => { + if (!data || data.pages.some((page) => page.items.includes(accountId))) return data; - return { - ...data, - pages: data.pages.map((page, index) => - index === 0 ? { ...page, items: [accountId, ...page.items] } : page, - ), - }; - }, - ); + return { + ...data, + pages: data.pages.map((page, index) => + index === 0 ? { ...page, items: [accountId, ...page.items] } : page, + ), + }; + }); const removeGroupBlock = (groupId: string, accountId: string) => - queryClient.setQueryData>>( - queryKeys.accountsLists.groupBlocks(groupId), - filterById(accountId), - ); + queryClient.setQueryData(queryKeys.accountsLists.groupBlocks(groupId), filterById(accountId)); const useGroupBlocks = makePaginatedResponseQuery( (groupId: string) => queryKeys.accountsLists.groupBlocks(groupId), diff --git a/packages/pl-fe/src/queries/groups/use-group-relationship.ts b/packages/pl-fe/src/queries/groups/use-group-relationship.ts index 946810423..9e964e71f 100644 --- a/packages/pl-fe/src/queries/groups/use-group-relationship.ts +++ b/packages/pl-fe/src/queries/groups/use-group-relationship.ts @@ -33,30 +33,24 @@ const useJoinGroupMutation = (id: string) => { onMutate: () => { let previousRelationship: GroupRelationship | undefined = undefined; - queryClient.setQueryData( - queryKeys.groupRelationships.show(id), - (relationship) => { - previousRelationship = relationship; - if (!relationship) return undefined; - return { - ...relationship, - requested: true, - }; - }, - ); + queryClient.setQueryData(queryKeys.groupRelationships.show(id), (relationship) => { + previousRelationship = relationship; + if (!relationship) return undefined; + return { + ...relationship, + requested: true, + }; + }); return previousRelationship; }, onError: (_, __, previousRelationship) => { if (previousRelationship) { - queryClient.setQueryData( - ['groupRelationships', id], - previousRelationship, - ); + queryClient.setQueryData(queryKeys.groupRelationships.show(id), previousRelationship); } }, onSuccess: (data) => { - queryClient.setQueryData(queryKeys.groupRelationships.show(id), data); + queryClient.setQueryData(queryKeys.groupRelationships.show(id), data); }, }); }; @@ -70,32 +64,26 @@ const useLeaveGroupMutation = (id: string) => { onMutate: () => { let previousRelationship: GroupRelationship | undefined = undefined; - queryClient.setQueryData( - queryKeys.groupRelationships.show(id), - (relationship) => { - previousRelationship = relationship; - if (!relationship) return undefined; - return { - ...relationship, - requested: false, - member: false, - role: undefined, - }; - }, - ); + queryClient.setQueryData(queryKeys.groupRelationships.show(id), (relationship) => { + previousRelationship = relationship; + if (!relationship) return undefined; + return { + ...relationship, + requested: false, + member: false, + role: undefined, + }; + }); return previousRelationship; }, onError: (_, __, previousRelationship) => { if (previousRelationship) { - queryClient.setQueryData( - ['groupRelationships', id], - previousRelationship, - ); + queryClient.setQueryData(queryKeys.groupRelationships.show(id), previousRelationship); } }, onSuccess: (data) => { - queryClient.setQueryData(queryKeys.groupRelationships.show(id), data); + queryClient.setQueryData(queryKeys.groupRelationships.show(id), data); }, }); }; diff --git a/packages/pl-fe/src/queries/keys.ts b/packages/pl-fe/src/queries/keys.ts index 46b58ad33..dafe016cd 100644 --- a/packages/pl-fe/src/queries/keys.ts +++ b/packages/pl-fe/src/queries/keys.ts @@ -1,10 +1,10 @@ -import { MinifiedInteractionRequest } from './statuses/use-interaction-requests'; - import type { MinifiedScrobble } from './accounts/account-scrobble'; import type { FilterType } from './notifications/use-notifications'; import type { DraftStatus } from './statuses/use-draft-statuses'; +import type { MinifiedInteractionRequest } from './statuses/use-interaction-requests'; import type { MinifiedStatusEdit } from './statuses/use-status-history'; import type { MinifiedEmojiReaction } from './statuses/use-status-interactions'; +import type { TimelineEntry } from './timelines/use-home-timeline'; import type { MinifiedSuggestion } from './trends/use-suggested-accounts'; import type { MinifiedAdminAccount, @@ -356,7 +356,7 @@ const notifications = { root: ['notifications'] as const, list: (activeFilter?: FilterType) => { const key = ['notifications', activeFilter] as const; - return key as TaggedKey>; + return key as TaggedKey>>; }, }; @@ -407,7 +407,7 @@ const suggestions = { const timelines = { root: ['timelines'] as const, - home: ['timelines', 'home'] as const, + home: ['timelines', 'home'] as TaggedKey<['timelines', 'home'], Array>, }; const timelineIds = { @@ -518,7 +518,7 @@ const lists = { all: ['lists'] as TaggedKey<['lists'], Array>, forAccount: (accountId: string) => { const key = ['lists', 'forAccount', accountId] as const; - return key as TaggedKey>; + return key as TaggedKey>; }, }; diff --git a/packages/pl-fe/src/queries/notifications/use-notifications.ts b/packages/pl-fe/src/queries/notifications/use-notifications.ts index 3fee5c3c2..206c113ef 100644 --- a/packages/pl-fe/src/queries/notifications/use-notifications.ts +++ b/packages/pl-fe/src/queries/notifications/use-notifications.ts @@ -1,9 +1,4 @@ -import { - type InfiniteData, - useInfiniteQuery, - useMutation, - useQueryClient, -} from '@tanstack/react-query'; +import { useInfiniteQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import 'intl-pluralrules'; import { useCallback, useEffect } from 'react'; import { useIntl } from 'react-intl'; @@ -33,12 +28,7 @@ import { queryKeys } from '../keys'; import { useNotificationsMarker } from '../markers/use-markers'; import { minifyGroupedNotifications } from '../utils/minify-list'; -import type { - GetGroupedNotificationsParams, - Notification, - NotificationGroup, - PaginatedResponse, -} from 'pl-api'; +import type { GetGroupedNotificationsParams, Notification, NotificationGroup } from 'pl-api'; const FILTER_TYPES = { all: undefined, @@ -305,25 +295,22 @@ const comparator = ( }; const prependNotification = (notification: NotificationGroup, filter: FilterType) => { - queryClient.setQueryData>>( - queryKeys.notifications.list(filter), - (data) => { - if (!data || !data.pages.length) return data; + queryClient.setQueryData(queryKeys.notifications.list(filter), (data) => { + if (!data || !data.pages.length) return data; - const [firstPage, ...restPages] = data.pages; + const [firstPage, ...restPages] = data.pages; - return { - ...data, - pages: [ - { - ...firstPage, - items: [notification, ...firstPage.items].toSorted(comparator).filter(filterUnique), - }, - ...restPages, - ], - }; - }, - ); + return { + ...data, + pages: [ + { + ...firstPage, + items: [notification, ...firstPage.items].toSorted(comparator).filter(filterUnique), + }, + ...restPages, + ], + }; + }); }; export { diff --git a/packages/pl-fe/src/queries/settings/domain-blocks.ts b/packages/pl-fe/src/queries/settings/domain-blocks.ts index 31055aa18..f6722c115 100644 --- a/packages/pl-fe/src/queries/settings/domain-blocks.ts +++ b/packages/pl-fe/src/queries/settings/domain-blocks.ts @@ -5,7 +5,6 @@ import { queryKeys } from '../keys'; import { makePaginatedResponseQueryOptions } from '../utils/make-paginated-response-query-options'; import { mutationOptions } from '../utils/mutation-options'; -import type { MinifiedSuggestion } from '../trends/use-suggested-accounts'; import type { RootState, Store } from '@/store'; import type { Account } from 'pl-api'; @@ -26,7 +25,7 @@ const blockDomainMutationOptions = mutationOptions({ const accounts = selectAccountsByDomain(store.getState(), domain); if (!accounts) return; - queryClient.setQueryData>(queryKeys.suggestions.all, (suggestions) => + queryClient.setQueryData(queryKeys.suggestions.all, (suggestions) => suggestions ? suggestions.filter((suggestion) => !accounts.includes(suggestion.account_id)) : undefined, diff --git a/packages/pl-fe/src/queries/settings/use-filters.ts b/packages/pl-fe/src/queries/settings/use-filters.ts index 9cc4db11e..5470f3a0a 100644 --- a/packages/pl-fe/src/queries/settings/use-filters.ts +++ b/packages/pl-fe/src/queries/settings/use-filters.ts @@ -7,7 +7,7 @@ import { useFeatures } from '@/hooks/use-features'; import { queryKeys } from '../keys'; -import type { CreateFilterParams, Filter, UpdateFilterParams } from 'pl-api'; +import type { CreateFilterParams, UpdateFilterParams } from 'pl-api'; const useFilters = () => { const client = useClient(); @@ -56,7 +56,7 @@ const useCreateFilter = () => { mutationFn: (data: CreateFilterParams) => client.filtering.createFilter(data), onSettled: (data) => { queryClient.invalidateQueries({ queryKey: queryKeys.filters.all }); - if (data) queryClient.setQueryData(queryKeys.filters.show(data.id), data); + if (data) queryClient.setQueryData(queryKeys.filters.show(data.id), data); }, }); }; @@ -70,7 +70,7 @@ const useUpdateFilter = (filterId: string) => { mutationFn: (data: UpdateFilterParams) => client.filtering.updateFilter(filterId, data), onSettled: (data) => { queryClient.invalidateQueries({ queryKey: queryKeys.filters.all }); - if (data) queryClient.setQueryData(queryKeys.filters.show(filterId), data); + if (data) queryClient.setQueryData(queryKeys.filters.show(filterId), data); }, }); }; diff --git a/packages/pl-fe/src/queries/statuses/use-poll.ts b/packages/pl-fe/src/queries/statuses/use-poll.ts index 2a0cccbc1..047377f5d 100644 --- a/packages/pl-fe/src/queries/statuses/use-poll.ts +++ b/packages/pl-fe/src/queries/statuses/use-poll.ts @@ -23,7 +23,7 @@ const usePollVoteMutation = (pollId: string) => { mutationKey: ['statuses', 'polls', pollId, 'vote'], mutationFn: (choices: number[]) => client.polls.vote(pollId, choices), onSuccess: (poll) => { - queryClient.setQueryData(queryKeys.statuses.polls.show(pollId), poll); + queryClient.setQueryData(queryKeys.statuses.polls.show(pollId), poll); }, }); }; diff --git a/packages/pl-fe/src/queries/statuses/use-status-interactions.ts b/packages/pl-fe/src/queries/statuses/use-status-interactions.ts index d498fd909..c5254342d 100644 --- a/packages/pl-fe/src/queries/statuses/use-status-interactions.ts +++ b/packages/pl-fe/src/queries/statuses/use-status-interactions.ts @@ -198,7 +198,7 @@ const useBookmarkStatus = (statusId: string) => { queryClient.invalidateQueries({ queryKey: queryKeys.accountsLists.statusReblogs(statusId) }); if (previousFolder) { - queryClient.setQueryData>>( + queryClient.setQueryData( queryKeys.statusLists.bookmarks(previousFolder), filterById(statusId), ); diff --git a/packages/pl-fe/src/queries/timelines/use-home-timeline.ts b/packages/pl-fe/src/queries/timelines/use-home-timeline.ts index 4914779b2..86520e904 100644 --- a/packages/pl-fe/src/queries/timelines/use-home-timeline.ts +++ b/packages/pl-fe/src/queries/timelines/use-home-timeline.ts @@ -145,7 +145,7 @@ const useHomeTimeline = () => { const timelinePage = processPage(response); - queryClient.setQueryData>(queryKeys.timelines.home, (oldData) => { + queryClient.setQueryData(queryKeys.timelines.home, (oldData) => { if (!oldData) return timelinePage; const index = oldData.indexOf(entry); diff --git a/packages/pl-fe/src/queries/utils/update-paginated-response.ts b/packages/pl-fe/src/queries/utils/update-paginated-response.ts index 61ef3aabf..64aceb50e 100644 --- a/packages/pl-fe/src/queries/utils/update-paginated-response.ts +++ b/packages/pl-fe/src/queries/utils/update-paginated-response.ts @@ -1,8 +1,8 @@ -import { type InfiniteData, type QueryKey } from '@tanstack/react-query'; -import { PaginatedResponse } from 'pl-api'; - import { queryClient } from '@/queries/client'; +import type { InfiniteData, QueryKey } from '@tanstack/react-query'; +import type { PaginatedResponse } from 'pl-api'; + const updatePaginatedResponse = ( queryKey: QueryKey, updater: (items: PaginatedResponse['items']) => PaginatedResponse['items'], diff --git a/packages/pl-fe/src/stores/shoutbox.ts b/packages/pl-fe/src/stores/shoutbox.ts index 32ae2aa84..eeb5302dd 100644 --- a/packages/pl-fe/src/stores/shoutbox.ts +++ b/packages/pl-fe/src/stores/shoutbox.ts @@ -1,4 +1,3 @@ -import { type PlApiClient, type ShoutMessage as BaseShoutMessage, Account } from 'pl-api'; import { useEffect } from 'react'; import { create } from 'zustand'; import { mutative } from 'zustand-mutative'; @@ -9,6 +8,8 @@ import { useLoggedIn } from '@/hooks/use-logged-in'; import { queryClient } from '@/queries/client'; import { queryKeys } from '@/queries/keys'; +import type { PlApiClient, ShoutMessage as BaseShoutMessage } from 'pl-api'; + const minifyMessage = ({ author, ...message }: BaseShoutMessage) => ({ author_id: author.id, ...message, @@ -37,7 +38,7 @@ const useShoutboxStore = create()( setMessages: (messages) => { set((state: State) => { for (const { author } of messages.toReversed()) { - queryClient.setQueryData( + queryClient.setQueryData( queryKeys.accounts.show(author.id), (account) => account || author, ); @@ -48,10 +49,7 @@ const useShoutboxStore = create()( }, pushMessage: (message) => { set((state: State) => { - queryClient.setQueryData( - queryKeys.accounts.show(message.author.id), - message.author, - ); + queryClient.setQueryData(queryKeys.accounts.show(message.author.id), message.author); state.messages.push(minifyMessage(message)); }); },