mirror of
https://github.com/formbricks/formbricks.git
synced 2026-05-24 11:39:31 -05:00
939fedfca4
Signed-off-by: gulshank0 <gulshanbahadur002@gmail.com> Co-authored-by: Tiago Farto <tiago@formbricks.com> Co-authored-by: Johannes <72809645+jobenjada@users.noreply.github.com> Co-authored-by: pandeymangg <anshuman.pandey9999@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Tiago <1585571+xernobyl@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Theodór Tómas <theodortomas@gmail.com> Co-authored-by: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Co-authored-by: Bhagya Amarasinghe <b.sithumini@yahoo.com> Co-authored-by: Chowdhury Tafsir Ahmed Siddiki <ctafsiras@gmail.com> Co-authored-by: neila <40727091+neila@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Harsh Bhat <90265455+harshsbhat@users.noreply.github.com> Co-authored-by: Harsh Bhat <harshbhat@Harshs-MacBook-Air.local> Co-authored-by: Johannes <johannes@formbricks.com> Co-authored-by: Balázs Úr <balazs@urbalazs.hu> Co-authored-by: Gulshan <gulshanbahadur002@gmail.com> Co-authored-by: Harsh Bhat <harsh121102@gmail.com> Co-authored-by: Javi Aguilar <122741+itsjavi@users.noreply.github.com> Co-authored-by: Johannes <jobenjada@users.noreply.github.com>
47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import type { TSurveyElement } from "@formbricks/types/surveys/elements";
|
|
import type { TTemplate } from "@formbricks/types/templates";
|
|
import type { TWorkspace } from "@formbricks/types/workspace";
|
|
import { getLocalizedValue } from "@/lib/i18n/utils";
|
|
import { structuredClone } from "@/lib/pollyfills/structuredClone";
|
|
|
|
export const replaceElementPresetPlaceholders = (
|
|
element: TSurveyElement,
|
|
workspace: TWorkspace
|
|
): TSurveyElement => {
|
|
if (!workspace) return element;
|
|
const newElement = structuredClone(element);
|
|
const defaultLanguageCode = "default";
|
|
|
|
if (newElement.headline) {
|
|
newElement.headline[defaultLanguageCode] = getLocalizedValue(
|
|
newElement.headline,
|
|
defaultLanguageCode
|
|
).replace("$[workspaceName]", workspace.name);
|
|
}
|
|
|
|
if (newElement.subheader) {
|
|
newElement.subheader[defaultLanguageCode] = getLocalizedValue(
|
|
newElement.subheader,
|
|
defaultLanguageCode
|
|
)?.replace("$[workspaceName]", workspace.name);
|
|
}
|
|
|
|
return newElement;
|
|
};
|
|
|
|
// replace all occurences of workspaceName with the actual workspace name in the current template
|
|
export const replacePresetPlaceholders = (template: TTemplate, workspace: any) => {
|
|
const preset = structuredClone(template.preset);
|
|
preset.name = preset.name.replace("$[workspaceName]", workspace.name);
|
|
|
|
// Handle blocks if present
|
|
if (preset.blocks && preset.blocks.length > 0) {
|
|
preset.blocks = preset.blocks.map((block) => ({
|
|
...block,
|
|
elements: block.elements.map((element) => replaceElementPresetPlaceholders(element, workspace)),
|
|
}));
|
|
}
|
|
|
|
return { ...template, preset };
|
|
};
|