From 888a7a66606d278e01ff8a086532c20c63785615 Mon Sep 17 00:00:00 2001 From: Jiya Date: Thu, 14 May 2026 13:23:19 +0530 Subject: [PATCH] Fix long unbroken text overflow in resume preview --- .../Resume/ResumePDF/ResumePDFProfile.tsx | 12 ++++++++--- .../Resume/ResumePDF/common/index.tsx | 20 ++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/app/components/Resume/ResumePDF/ResumePDFProfile.tsx b/src/app/components/Resume/ResumePDF/ResumePDFProfile.tsx index a01f522..0547c07 100644 --- a/src/app/components/Resume/ResumePDF/ResumePDFProfile.tsx +++ b/src/app/components/Resume/ResumePDF/ResumePDFProfile.tsx @@ -8,6 +8,7 @@ import { ResumePDFLink, ResumePDFSection, ResumePDFText, + addSoftBreaksToLongUnbrokenText, } from "components/Resume/ResumePDF/common"; import type { ResumeProfile } from "lib/redux/types"; @@ -85,12 +86,17 @@ export const ResumePDFProfile = ({ ...styles.flexRow, alignItems: "center", gap: spacing["1"], + maxWidth: "100%", }} > - - {value} - + + + + {addSoftBreaksToLongUnbrokenText(value)} + + + ); })} diff --git a/src/app/components/Resume/ResumePDF/common/index.tsx b/src/app/components/Resume/ResumePDF/common/index.tsx index 67608b2..0b4f953 100644 --- a/src/app/components/Resume/ResumePDF/common/index.tsx +++ b/src/app/components/Resume/ResumePDF/common/index.tsx @@ -4,6 +4,24 @@ import { styles, spacing } from "components/Resume/ResumePDF/styles"; import { DEBUG_RESUME_PDF_FLAG } from "lib/constants"; import { DEFAULT_FONT_COLOR } from "lib/redux/settingsSlice"; +const SOFT_BREAK_CHARACTER = "\u200B"; +const LONG_UNBROKEN_TEXT_LENGTH = 20; +const SOFT_BREAK_INTERVAL = 8; + +export const addSoftBreaksToLongUnbrokenText = (text: string) => { + return text + .split(/(\s+)/) + .map((segment) => { + if (segment.length < LONG_UNBROKEN_TEXT_LENGTH || /\s+/.test(segment)) { + return segment; + } + + const chunks = segment.match(new RegExp(`.{1,${SOFT_BREAK_INTERVAL}}`, "g")); +return chunks ? chunks.join(SOFT_BREAK_CHARACTER) : segment; + }) + .join(""); +}; + export const ResumePDFSection = ({ themeColor, heading, @@ -104,7 +122,7 @@ export const ResumePDFBulletList = ({ - {item} + {addSoftBreaksToLongUnbrokenText(item)} ))}