From cf4119baf6917a4e859d68902e4b17f5e51b619b Mon Sep 17 00:00:00 2001
From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com>
Date: Wed, 5 Nov 2025 19:12:12 +0530
Subject: [PATCH] fix: update issue in welcome card (#6779)
---
.../editor/components/edit-welcome-card.tsx | 9 -------
.../editor/components/toolbar-plugin.tsx | 25 +++++++++++--------
2 files changed, 15 insertions(+), 19 deletions(-)
diff --git a/apps/web/modules/survey/editor/components/edit-welcome-card.tsx b/apps/web/modules/survey/editor/components/edit-welcome-card.tsx
index a232bae92b..c47591ba99 100644
--- a/apps/web/modules/survey/editor/components/edit-welcome-card.tsx
+++ b/apps/web/modules/survey/editor/components/edit-welcome-card.tsx
@@ -3,7 +3,6 @@
import * as Collapsible from "@radix-ui/react-collapsible";
import { Hand } from "lucide-react";
import { usePathname } from "next/navigation";
-import { useState } from "react";
import { useTranslation } from "react-i18next";
import { TSurvey, TSurveyQuestionId, TSurveyWelcomeCard } from "@formbricks/types/surveys/types";
import { TUserLocale } from "@formbricks/types/user";
@@ -38,8 +37,6 @@ export const EditWelcomeCard = ({
}: EditWelcomeCardProps) => {
const { t } = useTranslation();
- const [firstRender, setFirstRender] = useState(true);
-
const path = usePathname();
const environmentId = path?.split("/environments/")[1]?.split("/")[0];
@@ -138,8 +135,6 @@ export const EditWelcomeCard = ({
setSelectedLanguageCode={setSelectedLanguageCode}
locale={locale}
isStorageConfigured={isStorageConfigured}
- firstRender={firstRender}
- setFirstRender={setFirstRender}
/>
@@ -155,8 +150,6 @@ export const EditWelcomeCard = ({
setSelectedLanguageCode={setSelectedLanguageCode}
locale={locale}
isStorageConfigured={isStorageConfigured}
- firstRender={firstRender}
- setFirstRender={setFirstRender}
/>
@@ -177,8 +170,6 @@ export const EditWelcomeCard = ({
label={t("environments.surveys.edit.next_button_label")}
locale={locale}
isStorageConfigured={isStorageConfigured}
- firstRender={firstRender}
- setFirstRender={setFirstRender}
/>
diff --git a/apps/web/modules/ui/components/editor/components/toolbar-plugin.tsx b/apps/web/modules/ui/components/editor/components/toolbar-plugin.tsx
index 2411d5d6b2..49f4b7746b 100644
--- a/apps/web/modules/ui/components/editor/components/toolbar-plugin.tsx
+++ b/apps/web/modules/ui/components/editor/components/toolbar-plugin.tsx
@@ -262,22 +262,27 @@ export const ToolbarPlugin = (
const root = $getRoot();
root.clear();
root.append(...nodes);
-
- editor.registerUpdateListener(({ editorState }) => {
- editorState.read(() => {
- const textInHtml = $generateHtmlFromNodes(editor)
- .replace(/</g, "<")
- .replace(/>/g, ">")
- .replace(/white-space:\s*pre-wrap;?/g, "");
- setText.current(textInHtml);
- });
- });
});
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
+ // Register text-saving update listener - always active for each editor instance
+ useEffect(() => {
+ const unregister = editor.registerUpdateListener(({ editorState }) => {
+ editorState.read(() => {
+ const textInHtml = $generateHtmlFromNodes(editor)
+ .replace(/</g, "<")
+ .replace(/>/g, ">")
+ .replace(/white-space:\s*pre-wrap;?/g, "");
+ setText.current(textInHtml);
+ });
+ });
+
+ return unregister;
+ }, [editor]);
+
useEffect(() => {
return mergeRegister(
editor.registerUpdateListener(({ editorState }) => {