From 2dfdba2acf6087f34dfc7e3dac45aacfd6e9fc23 Mon Sep 17 00:00:00 2001 From: Jakob Schott <154420406+jakobsitory@users.noreply.github.com> Date: Fri, 13 Jun 2025 13:21:45 +0200 Subject: [PATCH] chore: Optimize text sizing and alignment for Drop-Off table (#5914) Co-authored-by: Johannes --- .gitignore | 1 + .../components/SummaryDropOffs.test.tsx | 12 ++++--- .../summary/components/SummaryDropOffs.tsx | 32 +++++++++++-------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 8c8df66958..37511a6536 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ infra/terraform/.terraform/ /.idea/ /*.iml packages/ios/FormbricksSDK/FormbricksSDK.xcodeproj/project.xcworkspace/xcuserdata +.cursorrules diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.test.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.test.tsx index 52d5fe1e0d..ec67041960 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.test.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.test.tsx @@ -104,13 +104,15 @@ describe("SummaryDropOffs", () => { // Check drop-off counts and percentages expect(screen.getByText("20")).toBeInTheDocument(); - expect(screen.getByText("(20%)")).toBeInTheDocument(); - expect(screen.getByText("15")).toBeInTheDocument(); - expect(screen.getByText("(19%)")).toBeInTheDocument(); // 18.75% rounded to 19% - expect(screen.getByText("10")).toBeInTheDocument(); - expect(screen.getByText("(15%)")).toBeInTheDocument(); // 15.38% rounded to 15% + + // Check percentage values + const percentageElements = screen.getAllByText(/\d+%/); + expect(percentageElements).toHaveLength(3); + expect(percentageElements[0]).toHaveTextContent("20%"); + expect(percentageElements[1]).toHaveTextContent("19%"); + expect(percentageElements[2]).toHaveTextContent("15%"); }); test("renders empty state when dropOff array is empty", () => { diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.tsx index 433e25fc95..ae86641f2f 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/SummaryDropOffs.tsx @@ -23,9 +23,9 @@ export const SummaryDropOffs = ({ dropOff, survey }: SummaryDropOffsProps) => { return (
-
-
{t("common.questions")}
-
+
+
{t("common.questions")}
+
@@ -37,14 +37,16 @@ export const SummaryDropOffs = ({ dropOff, survey }: SummaryDropOffsProps) => {
-
{t("environments.surveys.summary.impressions")}
-
{t("environments.surveys.summary.drop_offs")}
+
{t("environments.surveys.summary.impressions")}
+
+ {t("environments.surveys.summary.drop_offs")} +
{dropOff.map((quesDropOff) => (
-
+ className="grid grid-cols-6 items-start border-b border-slate-100 text-xs text-slate-800 md:text-sm"> +
{getIcon(quesDropOff.questionType)}

{formatTextWithSlashes( @@ -57,17 +59,21 @@ export const SummaryDropOffs = ({ dropOff, survey }: SummaryDropOffsProps) => { "default" )["default"], "@", - ["text-lg"] + ["text-sm"] )}

-
+
{quesDropOff.ttc > 0 ? (quesDropOff.ttc / 1000).toFixed(2) + "s" : "N/A"}
-
{quesDropOff.impressions}
-
- {quesDropOff.dropOffCount} - ({Math.round(quesDropOff.dropOffPercentage)}%) +
+ {quesDropOff.impressions} +
+
+ + {Math.round(quesDropOff.dropOffPercentage)}% + + {quesDropOff.dropOffCount}
))}