import { useQuery } from '@tanstack/react-query' import { ApiResource, MemberResource } from '../types' import { useApiClient } from './use_api_client' export interface DirectMessageEligibility { canDirectMessage: boolean directMessagesDisabled: boolean } export function useDirectMessageEligibility({ groupId, personId, enabled = true, }: { groupId: string personId: number enabled?: boolean }) { const apiClient = useApiClient() const url = `/me/groups/${groupId}/members/${personId}` const { data, isLoading, isError } = useQuery({ queryKey: ['chat', url, 'direct_message_eligibility'], queryFn: () => apiClient.chat.get({ url, data: { fields: { Member: ['can_direct_message', 'direct_messages_disabled'] } }, }) as Promise>, enabled, retry: false, }) const member = data?.data const eligibility: DirectMessageEligibility | undefined = member && { canDirectMessage: member.canDirectMessage ?? false, directMessagesDisabled: member.directMessagesDisabled ?? false, } return { eligibility, isLoading, isError } }