diff --git a/packages/surveys/src/components/general/survey.tsx b/packages/surveys/src/components/general/survey.tsx index 5de77a8711..b4a99e9c42 100644 --- a/packages/surveys/src/components/general/survey.tsx +++ b/packages/surveys/src/components/general/survey.tsx @@ -692,6 +692,7 @@ export function Survey({ isCurrent={offset === 0} responseData={responseData} variablesData={currentVariables} + isPreviewMode={isPreviewMode} /> ); } else if (questionIdx >= localSurvey.questions.length) { diff --git a/packages/surveys/src/components/general/welcome-card.tsx b/packages/surveys/src/components/general/welcome-card.tsx index 3b02b4d633..0b5e08d558 100644 --- a/packages/surveys/src/components/general/welcome-card.tsx +++ b/packages/surveys/src/components/general/welcome-card.tsx @@ -24,6 +24,7 @@ interface WelcomeCardProps { isCurrent: boolean; responseData: TResponseData; variablesData: TResponseVariables; + isPreviewMode?: boolean; } function TimerIcon() { @@ -76,6 +77,7 @@ export function WelcomeCard({ isCurrent, responseData, variablesData, + isPreviewMode = false, }: WelcomeCardProps) { const { t } = useTranslation(); @@ -117,16 +119,13 @@ export function WelcomeCard({ useEffect(() => { const handleEnter = (e: KeyboardEvent) => { - // Check if the event target is inside the editor - if ((e.target as HTMLElement)?.closest(".editor")) { - return; - } if (e.key === "Enter") { handleSubmit(); } }; - if (isCurrent && survey.type === "link") { + // Only attach listener when current, link type, and NOT in preview mode + if (isCurrent && survey.type === "link" && !isPreviewMode) { document.addEventListener("keydown", handleEnter); } else { document.removeEventListener("keydown", handleEnter); @@ -136,8 +135,8 @@ export function WelcomeCard({ document.removeEventListener("keydown", handleEnter); }; - // eslint-disable-next-line react-hooks/exhaustive-deps -- only want to run this effect when isCurrent changes - }, [isCurrent]); + // eslint-disable-next-line react-hooks/exhaustive-deps -- only want to run this effect when isCurrent or isPreviewMode changes + }, [isCurrent, isPreviewMode]); return (