import { keepPreviousData, useQuery } from '@tanstack/react-query' import { useMemo } from 'react' import { ApiCollection, ResourceObject } from '../types' import { useApiClient } from './use_api_client' export interface PersonEnrichmentResource extends ResourceObject { type: 'PersonEnrichment' id: string badges: { title: string }[] } export function useEnrichPeople({ personIds, groupId }: { personIds: number[]; groupId?: number }) { const apiClient = useApiClient() const { data } = useQuery>({ queryKey: ['enrich_people', [...personIds].sort((a, b) => a - b), groupId], queryFn: () => apiClient.chat.post>({ url: '/enrich_people', data: { data: { type: 'PersonEnrichment', attributes: { person_ids: personIds, ...(groupId !== undefined ? { group_id: groupId } : {}), }, }, }, }), enabled: personIds.length > 0, placeholderData: keepPreviousData, }) return useMemo(() => new Map(data?.data.map(e => [+e.id, e]) ?? []), [data]) }