fix: onboarding template issue (#4221)

Co-authored-by: Matthias Nannt <mail@matthiasnannt.com>
This commit is contained in:
Johannes
2024-11-02 21:40:40 -07:00
committed by GitHub
parent 5977fa6f80
commit 18be650561
2 changed files with 51 additions and 23 deletions

View File

@@ -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"),

View File

@@ -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
}
};