-
-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Fix #763: preserve new lines in Additional Info textareas #766
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -306,7 +306,9 @@ export const ResumeModernTwoColumn: React.FC<ResumeModernTwoColumnProps> = ({ | |
| <div className={baseStyles['resume-section']}> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: Filtering blanks inside the section body without updating the outer Prompt for AI agents |
||
| <h3 className={styles.sectionTitleAccent}>{headingFallbacks.certifications}</h3> | ||
| <ul className={`ml-4 ${baseStyles['resume-list']} ${baseStyles['resume-text-xs']}`}> | ||
| {additional.certificationsTraining.map((cert, index) => ( | ||
| {additional.certificationsTraining | ||
| .filter((cert) => cert.trim() !== '') | ||
| .map((cert, index) => ( | ||
| <li key={index} className="flex"> | ||
| <span className="mr-1.5 flex-shrink-0">• </span> | ||
| <span>{cert}</span> | ||
|
|
@@ -371,7 +373,9 @@ export const ResumeModernTwoColumn: React.FC<ResumeModernTwoColumnProps> = ({ | |
| {headingFallbacks.skills} | ||
| </h3> | ||
| <div className="flex flex-wrap gap-1"> | ||
| {additional.technicalSkills.map((skill, index) => ( | ||
| {additional.technicalSkills | ||
| .filter((skill) => skill.trim() !== '') | ||
| .map((skill, index) => ( | ||
| <span key={index} className={baseStyles['resume-skill-pill']}> | ||
| {skill} | ||
| </span> | ||
|
|
@@ -390,8 +394,12 @@ export const ResumeModernTwoColumn: React.FC<ResumeModernTwoColumnProps> = ({ | |
| > | ||
| {headingFallbacks.languages} | ||
| </h3> | ||
| <p className={baseStyles['resume-text-xs']}>{additional.languages.join(' • ')}</p> | ||
| <p className={baseStyles['resume-text-xs']}> | ||
| {additional.languages.filter((language) => language.trim() !== '').join(' • ')} | ||
| </p> | ||
| </div> | ||
|
|
||
|
|
||
| )} | ||
|
|
||
| {/* Awards Section */} | ||
|
|
@@ -403,7 +411,10 @@ export const ResumeModernTwoColumn: React.FC<ResumeModernTwoColumnProps> = ({ | |
| {headingFallbacks.awards} | ||
| </h3> | ||
| <ul className={baseStyles['resume-list']}> | ||
| {additional.awards.map((award, index) => ( | ||
| {additional.awards | ||
|
|
||
| .filter((award) => award.trim() !== '') | ||
| .map((award, index) => ( | ||
| <li key={index} className={baseStyles['resume-text-xs']}> | ||
| {award} | ||
| </li> | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -396,25 +396,33 @@ const AdditionalSection: React.FC<{ | |
| {technicalSkills.length > 0 && ( | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: Blank-only Additional Info entries can still render an empty section/label-only row because visibility checks use raw array lengths while the new filtering only affects the displayed text. Prompt for AI agents |
||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.technicalSkills}</span> | ||
| <span>{technicalSkills.join(', ')}</span> | ||
| <span>{technicalSkills | ||
| .filter((skill) => skill.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| {languages.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.languages}</span> | ||
| <span>{languages.join(', ')}</span> | ||
| <span>{languages | ||
| .filter((language) => language.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| {certificationsTraining.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.certifications}</span> | ||
| <span>{certificationsTraining.join(', ')}</span> | ||
| <span>{certificationsTraining | ||
| .filter((cert) => cert.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| {awards.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.awards}</span> | ||
| <span>{awards.join(', ')}</span> | ||
| <span>{awards | ||
| .filter((award) => award.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| </div> | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -394,25 +394,33 @@ const AdditionalSection: React.FC<{ | |
| {technicalSkills.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.technicalSkills}</span> | ||
| <span>{technicalSkills.join(', ')}</span> | ||
| <span>{technicalSkills | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: Additional Info visibility still keys off raw array length, so blank-only entries render an empty section/rows after the new blank-item filter. Prompt for AI agents |
||
| .filter((skill) => skill.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| {languages.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.languages}</span> | ||
| <span>{languages.join(', ')}</span> | ||
| <span>{languages | ||
| .filter((language) => language.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| {certificationsTraining.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.certifications}</span> | ||
| <span>{certificationsTraining.join(', ')}</span> | ||
| <span>{certificationsTraining | ||
| .filter((cert) => cert.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| {awards.length > 0 && ( | ||
| <div className="flex"> | ||
| <span className="font-bold w-32 shrink-0">{mergedLabels.awards}</span> | ||
| <span>{awards.join(', ')}</span> | ||
| <span>{awards | ||
| .filter((award) => award.trim() !== '') | ||
| .join(', ')}</span> | ||
| </div> | ||
| )} | ||
| </div> | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: Section visibility checks raw array length, but rendering filters blanks, causing empty subsection headings/containers when all entries are whitespace.
Prompt for AI agents