diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/CTASummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/CTASummary.tsx index 31608a3cc4..df7948b1fa 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/CTASummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/CTASummary.tsx @@ -3,7 +3,7 @@ import { TSurveyCTAQuestion } from "@formbricks/types/v1/surveys"; import { ProgressBar } from "@formbricks/ui"; import { InboxStackIcon } from "@heroicons/react/24/solid"; import { useMemo } from "react"; -import { CursorArrowRippleIcon } from "@heroicons/react/24/solid"; +import { questionTypes } from "@/lib/questions"; interface CTASummaryProps { questionSummary: QuestionSummary; @@ -15,6 +15,8 @@ interface ChoiceResult { } export default function CTASummary({ questionSummary }: CTASummaryProps) { + const questionTypeInfo = questionTypes.find((type) => type.id === questionSummary.question.type); + const ctr: ChoiceResult = useMemo(() => { const clickedAbs = questionSummary.responses.filter((response) => response.value === "clicked").length; const count = questionSummary.responses.length; @@ -35,8 +37,8 @@ export default function CTASummary({ questionSummary }: CTASummaryProps) {
- - Call-to-Action + {questionTypeInfo && } + {questionTypeInfo ? questionTypeInfo.label : "Unknown Question Type"}
diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/ConsentSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/ConsentSummary.tsx index 1c4a96dc3e..5d67ffab74 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/ConsentSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/ConsentSummary.tsx @@ -3,7 +3,7 @@ import { ProgressBar } from "@formbricks/ui"; import { InboxStackIcon } from "@heroicons/react/24/solid"; import { useMemo } from "react"; import { TSurveyConsentQuestion } from "@formbricks/types/v1/surveys"; -import { CheckIcon } from "@heroicons/react/24/solid"; +import { questionTypes } from "@/lib/questions"; interface ConsentSummaryProps { questionSummary: QuestionSummary; @@ -18,6 +18,8 @@ interface ChoiceResult { } export default function ConsentSummary({ questionSummary }: ConsentSummaryProps) { + const questionTypeInfo = questionTypes.find((type) => type.id === questionSummary.question.type); + const ctr: ChoiceResult = useMemo(() => { const total = questionSummary.responses.length; const clickedAbs = questionSummary.responses.filter((response) => response.value !== "dismissed").length; @@ -43,8 +45,8 @@ export default function ConsentSummary({ questionSummary }: ConsentSummaryProps)
- - Consent + {questionTypeInfo && } + {questionTypeInfo ? questionTypeInfo.label : "Unknown Question Type"}
diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/MultipleChoiceSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/MultipleChoiceSummary.tsx index 7c87a679cc..b2785bbe6e 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/MultipleChoiceSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/MultipleChoiceSummary.tsx @@ -1,7 +1,7 @@ import { QuestionType } from "@formbricks/types/questions"; import type { QuestionSummary } from "@formbricks/types/responses"; import { PersonAvatar, ProgressBar } from "@formbricks/ui"; -import { InboxStackIcon, QueueListIcon, ListBulletIcon } from "@heroicons/react/24/solid"; +import { InboxStackIcon } from "@heroicons/react/24/solid"; import { useMemo } from "react"; import Link from "next/link"; import { truncate } from "@/lib/utils"; @@ -9,6 +9,7 @@ import { TSurveyMultipleChoiceMultiQuestion, TSurveyMultipleChoiceSingleQuestion, } from "@formbricks/types/v1/surveys"; +import { questionTypes } from "@/lib/questions"; interface MultipleChoiceSummaryProps { questionSummary: QuestionSummary; @@ -38,6 +39,8 @@ export default function MultipleChoiceSummary({ }: MultipleChoiceSummaryProps) { const isSingleChoice = questionSummary.question.type === QuestionType.MultipleChoiceSingle; + const questionTypeInfo = questionTypes.find((type) => type.id === questionSummary.question.type); + const results: ChoiceResult[] = useMemo(() => { if (!("choices" in questionSummary.question)) return []; @@ -132,14 +135,8 @@ export default function MultipleChoiceSummary({
- {isSingleChoice ? ( - - ) : ( - - )} - {isSingleChoice - ? "Multiple-Choice Single Select Question" - : "Multiple-Choice Multi Select Question"} + {questionTypeInfo && } + Multiple-Choice {questionTypeInfo ? questionTypeInfo.label : "Unknown Question Type"} Question
diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/NPSSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/NPSSummary.tsx index 33d57a25f0..e3294a1d0c 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/NPSSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/NPSSummary.tsx @@ -3,7 +3,7 @@ import { TSurveyNPSQuestion } from "@formbricks/types/v1/surveys"; import { HalfCircle, ProgressBar } from "@formbricks/ui"; import { InboxStackIcon } from "@heroicons/react/24/solid"; import { useMemo } from "react"; -import { PresentationChartBarIcon } from "@heroicons/react/24/solid"; +import { questionTypes } from "@/lib/questions"; interface NPSSummaryProps { questionSummary: QuestionSummary; @@ -29,6 +29,8 @@ export default function NPSSummary({ questionSummary }: NPSSummaryProps) { return result || 0; }; + const questionTypeInfo = questionTypes.find((type) => type.id === questionSummary.question.type); + const result: Result = useMemo(() => { let data = { promoters: 0, @@ -83,7 +85,8 @@ export default function NPSSummary({ questionSummary }: NPSSummaryProps) {
- Net Promoter Score (NPS) + {questionTypeInfo && } + {questionTypeInfo ? questionTypeInfo.label : "Unknown Question Type"}
diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/OpenTextSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/OpenTextSummary.tsx index 833e3f0181..5d42d68b43 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/OpenTextSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/OpenTextSummary.tsx @@ -5,7 +5,7 @@ import { TSurveyOpenTextQuestion } from "@formbricks/types/v1/surveys"; import { PersonAvatar } from "@formbricks/ui"; import { InboxStackIcon } from "@heroicons/react/24/solid"; import Link from "next/link"; -import { ChatBubbleBottomCenterTextIcon } from "@heroicons/react/24/solid"; +import { questionTypes } from "@/lib/questions"; interface OpenTextSummaryProps { questionSummary: QuestionSummary; @@ -17,6 +17,8 @@ function findEmail(person) { } export default function OpenTextSummary({ questionSummary, environmentId }: OpenTextSummaryProps) { + const questionTypeInfo = questionTypes.find((type) => type.id === questionSummary.question.type); + return (
@@ -27,8 +29,8 @@ export default function OpenTextSummary({ questionSummary, environmentId }: Open
- - Open Text Question + {questionTypeInfo && } + {questionTypeInfo ? questionTypeInfo.label : "Unknown Question Type"} Question
diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/RatingSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/RatingSummary.tsx index ccaec9037d..d1cf8fc5f0 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/RatingSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/RatingSummary.tsx @@ -5,7 +5,7 @@ import { useMemo } from "react"; import { QuestionType } from "@formbricks/types/questions"; import { TSurveyRatingQuestion } from "@formbricks/types/v1/surveys"; import { RatingResponse } from "@/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/components/RatingResponse"; -import { StarIcon } from "@heroicons/react/24/solid"; +import { questionTypes } from "@/lib/questions"; interface RatingSummaryProps { questionSummary: QuestionSummary; @@ -18,6 +18,8 @@ interface ChoiceResult { } export default function RatingSummary({ questionSummary }: RatingSummaryProps) { + const questionTypeInfo = questionTypes.find((type) => type.id === questionSummary.question.type); + const results: ChoiceResult[] = useMemo(() => { if (questionSummary.question.type !== QuestionType.Rating) return []; // build a dictionary of choices @@ -85,8 +87,8 @@ export default function RatingSummary({ questionSummary }: RatingSummaryProps) {
- - Rating Question + {questionTypeInfo && } + {questionTypeInfo ? questionTypeInfo.label : "Unknown Question Type"} Question