diff --git a/app/components/ParametersForm/index.tsx b/app/components/ParametersForm/index.tsx index 9a2ffe6..ab08c8b 100644 --- a/app/components/ParametersForm/index.tsx +++ b/app/components/ParametersForm/index.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useEffect, useRef } from 'react'; +import { useEffect, useRef, useState } from 'react'; import Link from 'next/link'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; @@ -17,6 +17,8 @@ export default function ParametersForm({ }; }) { const simulationModalRef = useRef(null); + const [generatedResultURL, setGeneratedResultURL] = useState(); + const [isProcessing, setIsProcessing] = useState(false); const { register, @@ -36,6 +38,11 @@ export default function ParametersForm({ const onSubmit = async (data: ParametersFormData) => { sessionStorage.setItem('simulationParams', JSON.stringify(data)); + // Creates a fake 1 second processing delay + setIsProcessing(true); + await new Promise((resolve) => setTimeout(resolve, 2000)); + setIsProcessing(false); + setGeneratedResultURL(generateRandomURL()); if (simulationModalRef.current) { simulationModalRef.current.showModal(); } @@ -95,7 +102,8 @@ export default function ParametersForm({ type="submit" disabled={!isValid} > - Prepare Report + {isProcessing && } + {isProcessing ? 'Generating...' : 'Prepare Report'} @@ -105,7 +113,7 @@ export default function ParametersForm({

Your simulation report was successfully generated.

Check the report