zapishis-client/apps/web/hooks/contacts/use-customer-contacts.ts
2025-02-08 22:02:12 +03:00

30 lines
971 B
TypeScript

'use client';
import { useClientsQuery, useMastersQuery } from './query';
import { ContactsFilterContext } from '@/context/contacts-filter';
import { sift } from 'radash';
import { use, useMemo } from 'react';
export function useCustomerContacts() {
const { filter } = use(ContactsFilterContext);
const { data: clientsData, isLoading: isLoadingClients } = useClientsQuery();
const { data: mastersData, isLoading: isLoadingMasters } = useMastersQuery();
const clients = clientsData?.clients;
const masters = mastersData?.masters;
const isLoading = isLoadingClients || isLoadingMasters;
const contacts = useMemo(() => {
switch (filter) {
case 'clients':
return clients ? sift(clients) : [];
case 'masters':
return masters ? sift(masters) : [];
default:
return [...(clients ? sift(clients) : []), ...(masters ? sift(masters) : [])];
}
}, [clients, masters, filter]);
return { contacts, isLoading };
}