From eea327e1f69b7c1f1cf0351afa9f428bc07087f2 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Sat, 11 Apr 2026 22:45:24 +0200 Subject: [PATCH] Turn CV template chooser into visual carousel --- job-tracker-ui/src/pages/ProfilePage.tsx | 125 +++++++++++++++-------- 1 file changed, 84 insertions(+), 41 deletions(-) diff --git a/job-tracker-ui/src/pages/ProfilePage.tsx b/job-tracker-ui/src/pages/ProfilePage.tsx index fd5d0d8..47c3342 100644 --- a/job-tracker-ui/src/pages/ProfilePage.tsx +++ b/job-tracker-ui/src/pages/ProfilePage.tsx @@ -937,53 +937,96 @@ export default function ProfilePage() { - - {REWRITE_TEMPLATES.map((option) => { - const selected = option.id === cvSectionStyle; - return ( - setCvSectionStyle(option.id)} - onKeyDown={(event) => { - if (event.key === "Enter" || event.key === " ") { - event.preventDefault(); - setCvSectionStyle(option.id); - } - }} - sx={{ - p: 1.5, - borderRadius: 3.5, - cursor: "pointer", - border: "1px solid", - borderColor: selected ? "primary.main" : "divider", - boxShadow: selected ? "0 0 0 1px rgba(25,118,210,0.18), 0 12px 30px rgba(15,23,42,0.08)" : "0 6px 18px rgba(15,23,42,0.04)", - background: selected ? `linear-gradient(180deg, ${option.accent}12 0%, rgba(255,255,255,0.96) 100%)` : "background.paper", - transition: "transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease", - '&:hover': { transform: 'translateY(-2px)' }, - }} - > - + + + + + - {option.eyebrow} - {option.title} + {selectedRewriteTemplate.eyebrow} + {selectedRewriteTemplate.title} + {selectedRewriteTemplate.blurb} - { event.stopPropagation(); setRewritePreviewTemplate(option); }}> + setRewritePreviewTemplate(selectedRewriteTemplate)}> - - {option.sampleHeading} - {option.sampleMeta} - {option.sampleBullets.map((bullet) => ( - • {bullet} - ))} + + + + {selectedRewriteTemplate.eyebrow} + {selectedRewriteTemplate.sampleHeading} + {selectedRewriteTemplate.sampleMeta} + + + Preview of the generated PDF style + {selectedRewriteTemplate.sampleBullets.map((bullet) => ( + • {bullet} + ))} + + + + + + - {option.blurb} - - ); - })} + + + + Choose a visual direction before generating + + {REWRITE_TEMPLATES.map((option) => { + const selected = option.id === cvSectionStyle; + return ( + setCvSectionStyle(option.id)} + onKeyDown={(event) => { + if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + setCvSectionStyle(option.id); + } + }} + sx={{ + p: 1.15, + borderRadius: 3, + cursor: "pointer", + border: "1px solid", + borderColor: selected ? "primary.main" : "divider", + background: selected ? `linear-gradient(180deg, ${option.accent}10 0%, rgba(255,255,255,0.98) 100%)` : "rgba(255,255,255,0.84)", + boxShadow: selected ? "0 0 0 1px rgba(25,118,210,0.16), 0 10px 24px rgba(15,23,42,0.08)" : "0 6px 16px rgba(15,23,42,0.04)", + transition: "transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease", + '&:hover': { transform: 'translateY(-1px)' }, + }} + > + + + {option.eyebrow} + + {option.sampleHeading} + {option.sampleMeta} + + + + + + {option.title} + {option.blurb} + + {selected ? : null} + + + + + ); + })} + + + +