diff --git a/packages/pl-fe/src/hooks/use-compose-suggestions.ts b/packages/pl-fe/src/hooks/use-compose-suggestions.ts index 5b86ded29..fc761f186 100644 --- a/packages/pl-fe/src/hooks/use-compose-suggestions.ts +++ b/packages/pl-fe/src/hooks/use-compose-suggestions.ts @@ -19,8 +19,7 @@ const useComposeSuggestions = (token: string): Array => { ? 'emojis' : null; - // TODO: fix default selectors across the code - const { data: customEmojis } = useCustomEmojis((emojis) => emojis); + const { data: customEmojis } = useCustomEmojis(); const { data: accountIds } = useAccountSearch(searchedType === 'accounts' ? debouncedToken : '', { resolve: false, limit: 5, diff --git a/packages/pl-fe/src/modals/select-bookmark-folder-modal.tsx b/packages/pl-fe/src/modals/select-bookmark-folder-modal.tsx index 7dbb86488..3b35e5246 100644 --- a/packages/pl-fe/src/modals/select-bookmark-folder-modal.tsx +++ b/packages/pl-fe/src/modals/select-bookmark-folder-modal.tsx @@ -52,7 +52,7 @@ const SelectBookmarkFolderModal: React.FC data); + const { isFetching, data: bookmarkFolders } = useBookmarkFolders(); const { data: selectedBookmarkFolders, isPending: fetchingSelectedBookmarkFolders } = useStatusBookmarkFolders(statusId); const { mutate: addBookmarkToFolder, isPending: addingBookmarkToFolder } = diff --git a/packages/pl-fe/src/pages/status-lists/bookmark-folders.tsx b/packages/pl-fe/src/pages/status-lists/bookmark-folders.tsx index b1283ad44..41d5e851a 100644 --- a/packages/pl-fe/src/pages/status-lists/bookmark-folders.tsx +++ b/packages/pl-fe/src/pages/status-lists/bookmark-folders.tsx @@ -98,7 +98,7 @@ const BookmarkFoldersPage: React.FC = () => { const intl = useIntl(); const features = useFeatures(); - const { data: bookmarkFolders, isFetching } = useBookmarkFolders((data) => data); + const { data: bookmarkFolders, isFetching } = useBookmarkFolders(); if (!features.bookmarkFolders) return ; diff --git a/packages/pl-fe/src/queries/accounts/use-antennas.ts b/packages/pl-fe/src/queries/accounts/use-antennas.ts index 068c705b9..9fc130c20 100644 --- a/packages/pl-fe/src/queries/accounts/use-antennas.ts +++ b/packages/pl-fe/src/queries/accounts/use-antennas.ts @@ -1,4 +1,9 @@ -import { type InfiniteData, useMutation, useQuery } from '@tanstack/react-query'; +import { + type InfiniteData, + useMutation, + useQuery, + type UseQueryResult, +} from '@tanstack/react-query'; import { useClient } from '@/hooks/use-client'; import { useFeatures } from '@/hooks/use-features'; @@ -10,7 +15,9 @@ import { minifyAccountList } from '../utils/minify-list'; import type { Antenna, PaginatedResponse, CreateAntennaParams, UpdateAntennaParams } from 'pl-api'; -const useAntennas = (select?: (data: Array) => T) => { +function useAntennas(select: (data: Array) => T): UseQueryResult; +function useAntennas(): UseQueryResult, Error>; +function useAntennas>(select?: (data: Array) => T) { const client = useClient(); const features = useFeatures(); @@ -20,7 +27,7 @@ const useAntennas = (select?: (data: Array) => T) => { enabled: features.antennas, select, }); -}; +} const useAntenna = (antennaId?: string) => useAntennas((data) => (antennaId ? data.find((antenna) => antenna.id === antennaId) : undefined)); diff --git a/packages/pl-fe/src/queries/accounts/use-circles.ts b/packages/pl-fe/src/queries/accounts/use-circles.ts index 9f94d9fdf..88794cb11 100644 --- a/packages/pl-fe/src/queries/accounts/use-circles.ts +++ b/packages/pl-fe/src/queries/accounts/use-circles.ts @@ -1,4 +1,9 @@ -import { type InfiniteData, useMutation, useQuery } from '@tanstack/react-query'; +import { + type InfiniteData, + type UseQueryResult, + useMutation, + useQuery, +} from '@tanstack/react-query'; import { useClient } from '@/hooks/use-client'; import { useFeatures } from '@/hooks/use-features'; @@ -10,7 +15,9 @@ import { minifyAccountList } from '../utils/minify-list'; import type { Circle, PaginatedResponse } from 'pl-api'; -const useCircles = (select?: (data: Array) => T) => { +function useCircles(select: (data: Array) => T): UseQueryResult; +function useCircles(): UseQueryResult, Error>; +function useCircles>(select?: (data: Array) => T) { const client = useClient(); const features = useFeatures(); @@ -20,7 +27,7 @@ const useCircles = (select?: (data: Array) => T) => { enabled: features.circles, select, }); -}; +} const useCircle = (circleId?: string) => useCircles((data) => (circleId ? data.find((circle) => circle.id === circleId) : undefined)); diff --git a/packages/pl-fe/src/queries/instance/use-custom-emojis.ts b/packages/pl-fe/src/queries/instance/use-custom-emojis.ts index 5eb993c9c..4eba4a5b2 100644 --- a/packages/pl-fe/src/queries/instance/use-custom-emojis.ts +++ b/packages/pl-fe/src/queries/instance/use-custom-emojis.ts @@ -1,4 +1,4 @@ -import { queryOptions, useQuery } from '@tanstack/react-query'; +import { queryOptions, useQuery, type UseQueryResult } from '@tanstack/react-query'; import { buildCustomEmojis } from '@/features/emoji'; import { addCustomToPool } from '@/features/emoji/search'; @@ -18,14 +18,16 @@ const customEmojisQueryOptions = (client: PlApiClient) => }), }); -const useCustomEmojis = (select?: (data: Array) => T) => { +function useCustomEmojis(select: (data: Array) => T): UseQueryResult; +function useCustomEmojis(): UseQueryResult, Error>; +function useCustomEmojis>(select?: (data: Array) => T) { const client = useClient(); return useQuery({ ...customEmojisQueryOptions(client), - select: select ?? ((data) => data as T), + select, }); -}; +} const prefetchCustomEmojis = (client: PlApiClient) => queryClient.prefetchQuery(customEmojisQueryOptions(client)); diff --git a/packages/pl-fe/src/queries/statuses/use-bookmark-folders.ts b/packages/pl-fe/src/queries/statuses/use-bookmark-folders.ts index 22ea2667a..4e7d7bb5c 100644 --- a/packages/pl-fe/src/queries/statuses/use-bookmark-folders.ts +++ b/packages/pl-fe/src/queries/statuses/use-bookmark-folders.ts @@ -1,4 +1,4 @@ -import { useMutation, useQuery } from '@tanstack/react-query'; +import { useMutation, useQuery, type UseQueryResult } from '@tanstack/react-query'; import { useClient } from '@/hooks/use-client'; import { useFeatures } from '@/hooks/use-features'; @@ -7,7 +7,13 @@ import { queryClient } from '../client'; import type { BookmarkFolder } from 'pl-api'; -const useBookmarkFolders = (select?: (data: Array) => T) => { +function useBookmarkFolders( + select: (data: Array) => T, +): UseQueryResult; +function useBookmarkFolders(): UseQueryResult, Error>; +function useBookmarkFolders>( + select?: (data: Array) => T, +) { const client = useClient(); const features = useFeatures(); @@ -17,7 +23,7 @@ const useBookmarkFolders = (select?: (data: Array) => T) => { enabled: features.bookmarkFolders, select, }); -}; +} const useBookmarkFolder = (folderId?: string) => useBookmarkFolders((data) => diff --git a/packages/pl-fe/src/queries/statuses/use-draft-statuses.ts b/packages/pl-fe/src/queries/statuses/use-draft-statuses.ts index ea2a3750c..5d5dbc82a 100644 --- a/packages/pl-fe/src/queries/statuses/use-draft-statuses.ts +++ b/packages/pl-fe/src/queries/statuses/use-draft-statuses.ts @@ -1,4 +1,9 @@ -import { type QueryClient, useQuery, useQueryClient } from '@tanstack/react-query'; +import { + type QueryClient, + useQuery, + useQueryClient, + type UseQueryResult, +} from '@tanstack/react-query'; import { create } from 'mutative'; import { mediaAttachmentSchema } from 'pl-api'; import * as v from 'valibot'; @@ -53,7 +58,13 @@ const getDrafts = async (accountUrl: string) => { const persistDrafts = (accountUrl: string, drafts: Record) => KVStore.setItem(`drafts:${accountUrl}`, Object.values(drafts)); -const useDraftStatusesQuery = (select?: (data: Record) => T) => { +function useDraftStatusesQuery( + select: (data: Record) => T, +): UseQueryResult; +function useDraftStatusesQuery(): UseQueryResult, Error>; +function useDraftStatusesQuery>( + select?: (data: Record) => T, +) { const { data: account } = useOwnAccount(); return useQuery({ @@ -62,7 +73,7 @@ const useDraftStatusesQuery = (select?: (data: Record) = enabled: !!account, select, }); -}; +} const useDraftStatusQuery = (draftStatusId: string) => useDraftStatusesQuery((data) => data[draftStatusId]);