diff --git a/apps/Frontend/src/components/insurance-status/cca-button-modal.tsx b/apps/Frontend/src/components/insurance-status/cca-button-modal.tsx index fb27c4d6..f6ab7ce9 100644 --- a/apps/Frontend/src/components/insurance-status/cca-button-modal.tsx +++ b/apps/Frontend/src/components/insurance-status/cca-button-modal.tsx @@ -1,4 +1,4 @@ -import { useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { Button } from "@/components/ui/button"; import { CheckCircle, LoaderCircleIcon } from "lucide-react"; import { useToast } from "@/hooks/use-toast"; @@ -17,6 +17,8 @@ interface CCAEligibilityButtonProps { firstName?: string; lastName?: string; isFormIncomplete: boolean; + autoTrigger?: boolean; + onAutoTriggered?: () => void; onPdfReady: (pdfId: number, fallbackFilename: string | null) => void; } @@ -26,12 +28,15 @@ export function CCAEligibilityButton({ firstName, lastName, isFormIncomplete, + autoTrigger, + onAutoTriggered, onPdfReady, }: CCAEligibilityButtonProps) { const { toast } = useToast(); const dispatch = useAppDispatch(); const sessionIdRef = useRef(null); + const autoTriggeredRef = useRef(false); const [isStarting, setIsStarting] = useState(false); @@ -181,6 +186,14 @@ export function CCAEligibilityButton({ } }; + useEffect(() => { + if (!autoTrigger || autoTriggeredRef.current || isFormIncomplete) return; + autoTriggeredRef.current = true; + onAutoTriggered?.(); + handleStart(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [autoTrigger, isFormIncomplete]); + return (