diff --git a/apps/web/components/common/spinner.tsx b/apps/web/components/common/spinner.tsx new file mode 100644 index 0000000..2d31776 --- /dev/null +++ b/apps/web/components/common/spinner.tsx @@ -0,0 +1,9 @@ +import { Loader2 } from 'lucide-react'; + +export function LoadingSpinner() { + return ( +
+ +
+ ); +} diff --git a/apps/web/components/contacts/contacts-list.tsx b/apps/web/components/contacts/contacts-list.tsx index c483125..f118684 100644 --- a/apps/web/components/contacts/contacts-list.tsx +++ b/apps/web/components/contacts/contacts-list.tsx @@ -1,4 +1,5 @@ 'use client'; +import { LoadingSpinner } from '../common/spinner'; import { useCustomerContacts } from '@/hooks/contacts'; import * as GQL from '@repo/graphql/types'; import { Avatar, AvatarFallback, AvatarImage } from '@repo/ui/components/ui/avatar'; @@ -31,6 +32,8 @@ const ContactRow = memo(function ({ contact }: ContactRowProps) { export function ContactsList() { const { contacts } = useCustomerContacts(); + if (!contacts.length) return ; + return (
{contacts.map((contact) => ( diff --git a/apps/web/hooks/contacts/use-customer-contacts.ts b/apps/web/hooks/contacts/use-customer-contacts.ts index af59c1d..026ec01 100644 --- a/apps/web/hooks/contacts/use-customer-contacts.ts +++ b/apps/web/hooks/contacts/use-customer-contacts.ts @@ -8,7 +8,7 @@ import { use, useEffect, useMemo } from 'react'; export function useCustomerContacts() { const { filter } = use(ContactsFilterContext); - const { clients = [], masters = [], setClients, setMasters } = useBoundStore(); + const { clients, masters, setClients, setMasters } = useBoundStore(); useEffect(() => { if ((filter === 'masters' || filter === 'all') && !masters)