import { useEffect, useState } from 'react'; import { getInviteInfo, joinSession, SessionInviteInfo, } from '../lib/functions/estimationSessionInvite'; import { getRouteApi } from '@tanstack/react-router'; const route = getRouteApi('/_authenticated/join/$sessionId'); const Join = () => { const navigate = route.useNavigate(); const { sessionId } = route.useParams(); const [sessionInfo, setSessionInfo] = useState(); const [isLoading, setIsLoading] = useState(true); useEffect(() => { getInviteInfo(sessionId).then((sessionInfo) => { setSessionInfo(sessionInfo); setIsLoading(false); }); }, [sessionId]); const handleAccept = async () => { setIsLoading(true); await joinSession(sessionId); navigate({ to: '/estimate/session/$sessionId', params: { sessionId: sessionId, }, }); }; const handleReturnHome = () => { navigate({ to: '/', }); }; if (!sessionInfo || isLoading) { // TODO: add loader return

Loading...

; } if (!sessionInfo.success) { return

{sessionInfo.message}

; } return (

You have been invited to join a new estimation session!

Session Name: {sessionInfo.name}

); }; export default Join;