import { getLikeStatus, thmubObject } from '@/services/editor'; import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useState } from 'react'; import { authKeys } from '@/lib/query-keys'; import { LikeObjectParamsType, LikeType } from '@/services/editor/type'; import { useAsyncFn } from '../tools'; export function useThmubObject(props: Pick) { const queryClient = useQueryClient(); const [thumb, setThumb] = useState(); const user = queryClient.getQueryData(authKeys.currentUser()) as any; useQuery({ queryKey: ['likeStatus', props.objectId, user.userId], enabled: !!props.objectId && !!user.userId, queryFn: () => { return getLikeStatus({ objectId: props.objectId, userId: user.userId }); }, }); const { run: handleThumb, loading } = useAsyncFn(async (likeType: LikeType) => { setThumb(likeType); const user = queryClient.getQueryData(authKeys.currentUser()) as any; const { data } = await thmubObject({ ...props, likeType, userId: user?.userId }); if (data.code === 200) { } else { setThumb(undefined); } }); return { thumb, loading, handleThumb, }; }