import { ButtonContainer } from '@/components/button-container'; import { FullPageEmptyState } from '@/components/full-page-empty-state'; import FullPageLoadingState from '@/components/full-page-loading-state'; import { CurlPreview } from '@/components/onboarding/curl-preview'; import VerifyListener from '@/components/onboarding/onboarding-verify-listener'; import { LinkButton } from '@/components/ui/button'; import { useTRPC } from '@/integrations/trpc/react'; import { cn } from '@/lib/utils'; import { PAGE_TITLES, createEntityTitle } from '@/utils/title'; import { useQuery } from '@tanstack/react-query'; import { Link, createFileRoute, redirect } from '@tanstack/react-router'; import { BoxSelectIcon } from 'lucide-react'; import { useEffect, useState } from 'react'; export const Route = createFileRoute('/_steps/onboarding/$projectId/verify')({ head: () => ({ meta: [{ title: createEntityTitle('Verify', PAGE_TITLES.ONBOARDING) }], }), beforeLoad: async ({ context }) => { if (!context.session.session) { throw redirect({ to: '/onboarding' }); } }, component: Component, loader: async ({ context, params }) => { await context.queryClient.prefetchQuery( context.trpc.project.getProjectWithClients.queryOptions({ projectId: params.projectId, }), ); }, pendingComponent: FullPageLoadingState, }); function Component() { const [isVerified, setIsVerified] = useState(false); const { projectId } = Route.useParams(); const trpc = useTRPC(); const { data: events, refetch } = useQuery( trpc.event.events.queryOptions({ projectId }), ); const { data: project } = useQuery( trpc.project.getProjectWithClients.queryOptions({ projectId }), ); useEffect(() => { if (events && events.data.length > 0) { setIsVerified(true); } }, [events]); if (!project) { return ( ); } const client = project.clients[0]; if (!client) { return ; } return (
{ refetch(); setIsVerified(true); }} /> Back
{!isVerified && ( Skip for now )} Your dashboard
); }