nicolium: fix default selectors across the code

Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
nicole mikołajczyk
2026-02-25 22:49:09 +01:00
parent c577a182f1
commit e9695ce018
8 changed files with 52 additions and 20 deletions

View File

@ -19,8 +19,7 @@ const useComposeSuggestions = (token: string): Array<AutoSuggestion> => {
? '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,

View File

@ -52,7 +52,7 @@ const SelectBookmarkFolderModal: React.FC<SelectBookmarkFolderModalProps & BaseM
setSearchTerm(e.target.value);
};
const { isFetching, data: bookmarkFolders } = useBookmarkFolders((data) => data);
const { isFetching, data: bookmarkFolders } = useBookmarkFolders();
const { data: selectedBookmarkFolders, isPending: fetchingSelectedBookmarkFolders } =
useStatusBookmarkFolders(statusId);
const { mutate: addBookmarkToFolder, isPending: addingBookmarkToFolder } =

View File

@ -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 <Navigate to='/bookmarks/$folderId' params={{ folderId: 'all' }} replace />;

View File

@ -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 = <T>(select?: (data: Array<Antenna>) => T) => {
function useAntennas<T>(select: (data: Array<Antenna>) => T): UseQueryResult<T, Error>;
function useAntennas(): UseQueryResult<Array<Antenna>, Error>;
function useAntennas<T = Array<Antenna>>(select?: (data: Array<Antenna>) => T) {
const client = useClient();
const features = useFeatures();
@ -20,7 +27,7 @@ const useAntennas = <T>(select?: (data: Array<Antenna>) => T) => {
enabled: features.antennas,
select,
});
};
}
const useAntenna = (antennaId?: string) =>
useAntennas((data) => (antennaId ? data.find((antenna) => antenna.id === antennaId) : undefined));

View File

@ -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 = <T>(select?: (data: Array<Circle>) => T) => {
function useCircles<T>(select: (data: Array<Circle>) => T): UseQueryResult<T, Error>;
function useCircles(): UseQueryResult<Array<Circle>, Error>;
function useCircles<T = Array<Circle>>(select?: (data: Array<Circle>) => T) {
const client = useClient();
const features = useFeatures();
@ -20,7 +27,7 @@ const useCircles = <T>(select?: (data: Array<Circle>) => T) => {
enabled: features.circles,
select,
});
};
}
const useCircle = (circleId?: string) =>
useCircles((data) => (circleId ? data.find((circle) => circle.id === circleId) : undefined));

View File

@ -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 = <T>(select?: (data: Array<CustomEmoji>) => T) => {
function useCustomEmojis<T>(select: (data: Array<CustomEmoji>) => T): UseQueryResult<T, Error>;
function useCustomEmojis(): UseQueryResult<Array<CustomEmoji>, Error>;
function useCustomEmojis<T = Array<CustomEmoji>>(select?: (data: Array<CustomEmoji>) => T) {
const client = useClient();
return useQuery({
...customEmojisQueryOptions(client),
select: select ?? ((data) => data as T),
select,
});
};
}
const prefetchCustomEmojis = (client: PlApiClient) =>
queryClient.prefetchQuery(customEmojisQueryOptions(client));

View File

@ -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 = <T>(select?: (data: Array<BookmarkFolder>) => T) => {
function useBookmarkFolders<T>(
select: (data: Array<BookmarkFolder>) => T,
): UseQueryResult<T, Error>;
function useBookmarkFolders(): UseQueryResult<Array<BookmarkFolder>, Error>;
function useBookmarkFolders<T = Array<BookmarkFolder>>(
select?: (data: Array<BookmarkFolder>) => T,
) {
const client = useClient();
const features = useFeatures();
@ -17,7 +23,7 @@ const useBookmarkFolders = <T>(select?: (data: Array<BookmarkFolder>) => T) => {
enabled: features.bookmarkFolders,
select,
});
};
}
const useBookmarkFolder = (folderId?: string) =>
useBookmarkFolders((data) =>

View File

@ -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<string, APIEntity>) =>
KVStore.setItem(`drafts:${accountUrl}`, Object.values(drafts));
const useDraftStatusesQuery = <T>(select?: (data: Record<string, DraftStatus>) => T) => {
function useDraftStatusesQuery<T>(
select: (data: Record<string, DraftStatus>) => T,
): UseQueryResult<T, Error>;
function useDraftStatusesQuery(): UseQueryResult<Record<string, DraftStatus>, Error>;
function useDraftStatusesQuery<T = Record<string, DraftStatus>>(
select?: (data: Record<string, DraftStatus>) => T,
) {
const { data: account } = useOwnAccount();
return useQuery({
@ -62,7 +73,7 @@ const useDraftStatusesQuery = <T>(select?: (data: Record<string, DraftStatus>) =
enabled: !!account,
select,
});
};
}
const useDraftStatusQuery = (draftStatusId: string) =>
useDraftStatusesQuery((data) => data[draftStatusId]);