30 lines
971 B
TypeScript
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 };
|
|
}
|