diff --git a/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/components/XMTemplateList.tsx b/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/components/XMTemplateList.tsx index ec8b72f504..fafe783345 100644 --- a/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/components/XMTemplateList.tsx +++ b/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/components/XMTemplateList.tsx @@ -3,7 +3,7 @@ import { replacePresetPlaceholders } from "@/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/lib/utils"; import { getXMTemplates } from "@/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/lib/xm-templates"; import { OnboardingOptionsContainer } from "@/app/(app)/(onboarding)/organizations/components/OnboardingOptionsContainer"; -import { ActivityIcon, ShoppingCartIcon, SmileIcon, StarIcon, ThumbsUpIcon, UsersIcon } from "lucide-react"; +import { ActivityIcon, ShoppingCartIcon, UsersIcon } from "lucide-react"; import { useTranslations } from "next-intl"; import { useRouter } from "next/navigation"; import { useState } from "react"; @@ -60,7 +60,7 @@ export const XMTemplateList = ({ product, user, environmentId }: XMTemplateListP onClick: () => handleTemplateClick(0), isLoading: activeTemplateId === 0, }, - { + /* { title: t("environments.xm-templates.five_star_rating"), description: t("environments.xm-templates.five_star_rating_description"), icon: StarIcon, @@ -73,7 +73,7 @@ export const XMTemplateList = ({ product, user, environmentId }: XMTemplateListP icon: ThumbsUpIcon, onClick: () => handleTemplateClick(2), isLoading: activeTemplateId === 2, - }, + }, */ { title: t("environments.xm-templates.ces"), description: t("environments.xm-templates.ces_description"), @@ -81,13 +81,13 @@ export const XMTemplateList = ({ product, user, environmentId }: XMTemplateListP onClick: () => handleTemplateClick(3), isLoading: activeTemplateId === 3, }, - { + /* { title: t("environments.xm-templates.smileys"), description: t("environments.xm-templates.smileys_description"), icon: SmileIcon, onClick: () => handleTemplateClick(4), isLoading: activeTemplateId === 4, - }, + }, */ { title: t("environments.xm-templates.enps"), description: t("environments.xm-templates.enps_description"), diff --git a/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/lib/xm-templates.ts b/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/lib/xm-templates.ts index 72d7755405..f4df9734ae 100644 --- a/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/lib/xm-templates.ts +++ b/apps/web/app/(app)/(onboarding)/environments/[environmentId]/xm-templates/lib/xm-templates.ts @@ -1,17 +1,35 @@ import { createId } from "@paralleldrive/cuid2"; -import { getDefaultEndingCard } from "@formbricks/lib/templates"; -import { translate } from "@formbricks/lib/templates"; +import { getDefaultEndingCard, translate } from "@formbricks/lib/templates"; import { TSurveyQuestionTypeEnum } from "@formbricks/types/surveys/types"; import { TXMTemplate } from "@formbricks/types/templates"; -export const getXMSurveyDefault = (locale: string): TXMTemplate => ({ - name: "", - endings: [getDefaultEndingCard([], locale)], - questions: [], - styling: { - overwriteThemeStyling: true, - }, -}); +function validateLocale(locale: string): boolean { + // Add logic to validate the locale, e.g., check against a list of supported locales + return typeof locale === "string" && locale.length > 0; +} + +function logError(error: Error, context: string) { + console.error(`Error in ${context}:`, error); +} + +export const getXMSurveyDefault = (locale: string): TXMTemplate => { + try { + if (!validateLocale(locale)) { + throw new Error("Invalid locale"); + } + return { + name: "", + endings: [getDefaultEndingCard([], locale)], + questions: [], + styling: { + overwriteThemeStyling: true, + }, + }; + } catch (error) { + logError(error, "getXMSurveyDefault"); + throw error; // Re-throw after logging + } +}; const NPSSurvey = (locale: string): TXMTemplate => { return { @@ -397,11 +415,21 @@ const eNPSSurvey = (locale: string): TXMTemplate => { }; }; -export const getXMTemplates = (locale: string): TXMTemplate[] => [ - NPSSurvey(locale), - StarRatingSurvey(locale), - CSATSurvey(locale), - CESSurvey(locale), - SmileysRatingSurvey(locale), - eNPSSurvey(locale), -]; +export const getXMTemplates = (locale: string): TXMTemplate[] => { + try { + if (!validateLocale(locale)) { + throw new Error("Invalid locale"); + } + return [ + NPSSurvey(locale), + StarRatingSurvey(locale), + CSATSurvey(locale), + CESSurvey(locale), + SmileysRatingSurvey(locale), + eNPSSurvey(locale), + ]; + } catch (error) { + logError(error, "getXMTemplates"); + return []; // Return an empty array or handle as needed + } +};