diff --git a/apps/web/app/(main)/profile/[telegramId]/page.tsx b/apps/web/app/(main)/profile/[telegramId]/page.tsx index 3f6e7b6..dac16f6 100644 --- a/apps/web/app/(main)/profile/[telegramId]/page.tsx +++ b/apps/web/app/(main)/profile/[telegramId]/page.tsx @@ -1,4 +1,3 @@ -import { getProfile } from '@/actions/profile'; import { Container } from '@/components/layout'; import { PageHeader } from '@/components/navigation'; import { ContactDataCard, PersonCard } from '@/components/profile'; @@ -12,11 +11,6 @@ export default async function ProfilePage(props: Readonly) { const queryClient = new QueryClient(); - await queryClient.prefetchQuery({ - queryFn: () => getProfile({ telegramId }), - queryKey: ['profile', 'telegramId', telegramId], - }); - return ( diff --git a/apps/web/app/(main)/profile/page.tsx b/apps/web/app/(main)/profile/page.tsx index 68a88dd..372caa5 100644 --- a/apps/web/app/(main)/profile/page.tsx +++ b/apps/web/app/(main)/profile/page.tsx @@ -1,4 +1,3 @@ -import { getProfile } from '@/actions/profile'; import { Container } from '@/components/layout'; import { LinksCard, PersonCard, ProfileDataCard } from '@/components/profile'; import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query'; @@ -6,11 +5,6 @@ import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query export default async function ProfilePage() { const queryClient = new QueryClient(); - await queryClient.prefetchQuery({ - queryFn: () => getProfile(), - queryKey: ['profile'], - }); - return ( diff --git a/apps/web/app/(main)/slots/[documentId]/page.tsx b/apps/web/app/(main)/slots/[documentId]/page.tsx index 78e6982..fab78ed 100644 --- a/apps/web/app/(main)/slots/[documentId]/page.tsx +++ b/apps/web/app/(main)/slots/[documentId]/page.tsx @@ -1,4 +1,3 @@ -import { getSlot } from '@/actions/slots'; import { Container } from '@/components/layout'; import { PageHeader } from '@/components/navigation'; import { DateTimeCard, SlotButtons } from '@/components/schedule'; @@ -9,15 +8,9 @@ type Props = { params: Promise<{ documentId: string }> }; export default async function ProfilePage(props: Readonly) { const parameters = await props.params; - const { documentId } = parameters; const queryClient = new QueryClient(); - await queryClient.prefetchQuery({ - queryFn: () => getSlot({ documentId }), - queryKey: ['slots', 'get', documentId], - }); - return ( diff --git a/apps/web/components/profile/person-card.tsx b/apps/web/components/profile/person-card.tsx index c406241..0d15d9e 100644 --- a/apps/web/components/profile/person-card.tsx +++ b/apps/web/components/profile/person-card.tsx @@ -1,13 +1,19 @@ 'use client'; +import { LoadingSpinner } from '../common/spinner'; import { type ProfileProps } from './types'; import { useProfileQuery } from '@/hooks/profile'; import { Avatar, AvatarFallback, AvatarImage } from '@repo/ui/components/ui/avatar'; import { Card } from '@repo/ui/components/ui/card'; export function PersonCard({ telegramId }: Readonly) { - const { data: customer } = useProfileQuery({ telegramId }); + const { data: customer, isLoading } = useProfileQuery({ telegramId }); - if (!customer) return null; + if (isLoading || !customer) + return ( +
+ +
+ ); return (