mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-16 16:34:24 +02:00
fix paginated loader query return value to be consistent with domain types
This commit is contained in:
@@ -85,14 +85,14 @@ export const useItemListPaginatedLoader = ({
|
|||||||
|
|
||||||
const { data, refetch: queryRefetch } = useQuery({
|
const { data, refetch: queryRefetch } = useQuery({
|
||||||
gcTime: 1000 * 15,
|
gcTime: 1000 * 15,
|
||||||
placeholderData: getInitialData(itemsPerPage),
|
placeholderData: { items: getInitialData(itemsPerPage) },
|
||||||
queryFn: async ({ signal }) => {
|
queryFn: async ({ signal }) => {
|
||||||
const result = await listQueryFn({
|
const result = await listQueryFn({
|
||||||
apiClientProps: { serverId, signal },
|
apiClientProps: { serverId, signal },
|
||||||
query: queryParams,
|
query: queryParams,
|
||||||
});
|
});
|
||||||
|
|
||||||
return result.items;
|
return result;
|
||||||
},
|
},
|
||||||
queryKey: queryKeys[getQueryKeyName(itemType)].list(serverId, queryParams),
|
queryKey: queryKeys[getQueryKeyName(itemType)].list(serverId, queryParams),
|
||||||
staleTime: 1000 * 15,
|
staleTime: 1000 * 15,
|
||||||
@@ -106,25 +106,28 @@ export const useItemListPaginatedLoader = ({
|
|||||||
(indexes: number[], value: object) => {
|
(indexes: number[], value: object) => {
|
||||||
return queryClient.setQueryData(
|
return queryClient.setQueryData(
|
||||||
queryKeys[getQueryKeyName(itemType)].list(serverId, queryParams),
|
queryKeys[getQueryKeyName(itemType)].list(serverId, queryParams),
|
||||||
(prev: undefined | unknown[]) => {
|
(prev: undefined | { items: unknown[] }) => {
|
||||||
if (!prev) {
|
if (!prev) {
|
||||||
return prev;
|
return prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
return prev.map((item: any, index) => {
|
return {
|
||||||
if (!item) {
|
...prev,
|
||||||
return item;
|
items: prev.items.map((item: any, index) => {
|
||||||
}
|
if (!item) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
if (!indexes.includes(index)) {
|
if (!indexes.includes(index)) {
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
...value,
|
...value,
|
||||||
};
|
};
|
||||||
});
|
}),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -141,7 +144,7 @@ export const useItemListPaginatedLoader = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleFavorite = (payload: UserFavoriteEventPayload) => {
|
const handleFavorite = (payload: UserFavoriteEventPayload) => {
|
||||||
if (!data) {
|
if (!data || !data.items) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +152,7 @@ export const useItemListPaginatedLoader = ({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const idToIndexMap = data
|
const idToIndexMap = data.items
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
.reduce((acc: Record<string, number>, item: any, index: number) => {
|
.reduce((acc: Record<string, number>, item: any, index: number) => {
|
||||||
acc[item.id] = index;
|
acc[item.id] = index;
|
||||||
@@ -168,7 +171,7 @@ export const useItemListPaginatedLoader = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleRating = (payload: UserRatingEventPayload) => {
|
const handleRating = (payload: UserRatingEventPayload) => {
|
||||||
if (!data) {
|
if (!data || !data.items) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +179,7 @@ export const useItemListPaginatedLoader = ({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const idToIndexMap = data.reduce(
|
const idToIndexMap = data.items.reduce(
|
||||||
(acc: Record<string, number>, item: any, index: number) => {
|
(acc: Record<string, number>, item: any, index: number) => {
|
||||||
acc[item.id] = index;
|
acc[item.id] = index;
|
||||||
return acc;
|
return acc;
|
||||||
@@ -206,7 +209,7 @@ export const useItemListPaginatedLoader = ({
|
|||||||
};
|
};
|
||||||
}, [data, eventKey, itemType, serverId, refresh, updateItems]);
|
}, [data, eventKey, itemType, serverId, refresh, updateItems]);
|
||||||
|
|
||||||
return { data, pageCount, totalItemCount };
|
return { data: data?.items || [], pageCount, totalItemCount };
|
||||||
};
|
};
|
||||||
|
|
||||||
const getFetchRange = (pageIndex: number, itemsPerPage: number) => {
|
const getFetchRange = (pageIndex: number, itemsPerPage: number) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user