From e30f16cec22cfbde7746d5c6594886ea82b3b6ae Mon Sep 17 00:00:00 2001 From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:39:44 +0530 Subject: [PATCH] fix: Embed in an Email preview (#1913) Co-authored-by: Matti Nannt --- .../(analysis)/summary/lib/emailTemplate.tsx | 43 +++++++++++-------- packages/ui/RatingSmiley/index.tsx | 41 ++++++++++++++++++ 2 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 packages/ui/RatingSmiley/index.tsx diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/lib/emailTemplate.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/lib/emailTemplate.tsx index a0effd89f6d..77773a012c4 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/lib/emailTemplate.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/lib/emailTemplate.tsx @@ -18,6 +18,7 @@ import { WEBAPP_URL } from "@formbricks/lib/constants"; import { getProductByEnvironmentId } from "@formbricks/lib/product/service"; import { getSurvey } from "@formbricks/lib/survey/service"; import { TSurvey, TSurveyQuestionType } from "@formbricks/types/surveys"; +import { RatingSmiley } from "@formbricks/ui/RatingSmiley"; interface EmailTemplateProps { survey: TSurvey; @@ -167,33 +168,39 @@ const EmailTemplate = ({ survey, surveyUrl, brandColor }: EmailTemplateProps) => case TSurveyQuestionType.Rating: return ( -
+
{firstQuestion.headline} {firstQuestion.subheader} - +
- {Array.from({ length: firstQuestion.range }, (_, i) => ( - - {firstQuestion.scale === "smiley" && 😃} - {firstQuestion.scale === "number" && i + 1} - {firstQuestion.scale === "star" && } - - ))} + + {Array.from({ length: firstQuestion.range }, (_, i) => ( + + {firstQuestion.scale === "smiley" && ( + + )} + {firstQuestion.scale === "number" && ( + {i + 1} + )} + {firstQuestion.scale === "star" && } + + ))} +
diff --git a/packages/ui/RatingSmiley/index.tsx b/packages/ui/RatingSmiley/index.tsx new file mode 100644 index 00000000000..404831082e1 --- /dev/null +++ b/packages/ui/RatingSmiley/index.tsx @@ -0,0 +1,41 @@ +import { + ConfusedFace, + FrowningFace, + GrinningFaceWithSmilingEyes, + GrinningSquintingFace, + NeutralFace, + PerseveringFace, + SlightlySmilingFace, + SmilingFaceWithSmilingEyes, + TiredFace, + WearyFace, +} from "../SingleResponseCard/components/Smileys"; + +interface RatingSmileyProps { + active: boolean; + idx: number; + range: number; +} + +export function RatingSmiley({ active, idx, range }: RatingSmileyProps): JSX.Element { + const activeColor = "fill-rating-fill"; + const inactiveColor = "fill-none"; + let icons = [ + , + , + , + , + , + , + , + , + , + , + ]; + + if (range == 7) icons = [icons[1], icons[3], icons[4], icons[5], icons[6], icons[8], icons[9]]; + else if (range == 5) icons = [icons[3], icons[4], icons[5], icons[6], icons[7]]; + else if (range == 4) icons = [icons[4], icons[5], icons[6], icons[7]]; + else if (range == 3) icons = [icons[4], icons[5], icons[7]]; + return icons[idx]; +}