diff --git a/apps/web/components/orders/components/contacts-grid/components/contacts-grid-base.tsx b/apps/web/components/orders/components/contacts-grid/components/contacts-grid-base.tsx index 4c11544..70a1309 100644 --- a/apps/web/components/orders/components/contacts-grid/components/contacts-grid-base.tsx +++ b/apps/web/components/orders/components/contacts-grid/components/contacts-grid-base.tsx @@ -1,4 +1,3 @@ -'use client'; import { CardSectionHeader } from '@/components/ui'; // eslint-disable-next-line import/extensions import AvatarPlaceholder from '@/public/avatar/avatar_placeholder.png'; @@ -24,6 +23,8 @@ export function ContactsGridBase({ contacts, onSelect, selected, title }: Contac {contacts.map((contact) => { if (!contact) return null; + const isCurrentUser = contact?.name === 'Я'; + return ( diff --git a/apps/web/components/orders/components/contacts-grid/index.tsx b/apps/web/components/orders/components/contacts-grid/index.tsx index a607c4b..5ecc955 100644 --- a/apps/web/components/orders/components/contacts-grid/index.tsx +++ b/apps/web/components/orders/components/contacts-grid/index.tsx @@ -8,7 +8,7 @@ import { withContext } from '@/utils/context'; import { use, useEffect } from 'react'; export const MastersGrid = withContext(ContactsFilterProvider)(function () { - const { contacts, isLoading, setFilter } = useCustomerContacts(); + const { contacts, isLoading, setFilter } = useCustomerContacts({ includeSelf: true }); const { masterId, setMasterId } = use(OrderContext); useEffect(() => { diff --git a/apps/web/hooks/contacts/use-customer-contacts.ts b/apps/web/hooks/contacts/use-customer-contacts.ts index e3ee7af..ada7839 100644 --- a/apps/web/hooks/contacts/use-customer-contacts.ts +++ b/apps/web/hooks/contacts/use-customer-contacts.ts @@ -1,27 +1,40 @@ +/* eslint-disable canonical/id-match */ 'use client'; +import { useProfileQuery } from '../profile'; import { useClientsQuery, useMastersQuery } from './query'; import { ContactsFilterContext } from '@/context/contacts-filter'; +import { Enum_Customer_Role } from '@repo/graphql/types'; import { sift } from 'radash'; import { use, useEffect, useMemo } from 'react'; -export function useCustomerContacts() { +type Parameters_ = { + includeSelf: boolean; +}; + +export function useCustomerContacts(parameters?: Parameters_) { const { filter, setFilter } = use(ContactsFilterContext); + const { data: customer, isLoading: isLoadingProfile } = useProfileQuery({}); const { data: clientsData, - isLoading: loadingClients, + isLoading: isLoadingClients, refetch: refetchClients, } = useClientsQuery(); const { data: mastersData, - isLoading: loadingMasters, + isLoading: isLoadingMasters, refetch: refetchMasters, } = useMastersQuery(); const clients = clientsData?.clients || []; - const masters = mastersData?.masters || []; - const isLoading = loadingClients || loadingMasters; + let masters = mastersData?.masters || []; + + if (parameters?.includeSelf && customer?.role === Enum_Customer_Role.Master) { + masters = [{ ...customer, name: 'Я' }, ...masters]; + } + + const isLoading = isLoadingClients || isLoadingMasters || isLoadingProfile; useEffect(() => { if (filter === 'clients') {