From 489be813eca9896765b8699f7aa88bdc34799f0d Mon Sep 17 00:00:00 2001 From: JOYCEQL <1449239013@qq.com> Date: Wed, 25 Feb 2026 01:40:57 +0800 Subject: [PATCH] feat: Implement live template previews in selection and remove Compact and Professional templates. --- src/components/preview/BaseInfo.tsx | 8 +- src/components/preview/SectionTitle.tsx | 28 +--- src/components/shared/TemplateSheet.tsx | 75 +++++----- src/components/templates/CompactTemplate.tsx | 129 ------------------ .../templates/ProfessionalTemplate.tsx | 129 ------------------ src/components/templates/index.tsx | 10 +- src/config/index.ts | 43 +----- src/config/templates.ts | 20 +-- src/i18n/locales/en.json | 9 +- src/i18n/locales/zh.json | 9 +- src/types/template.ts | 2 +- 11 files changed, 56 insertions(+), 406 deletions(-) delete mode 100644 src/components/templates/CompactTemplate.tsx delete mode 100644 src/components/templates/ProfessionalTemplate.tsx diff --git a/src/components/preview/BaseInfo.tsx b/src/components/preview/BaseInfo.tsx index de5bfbe..ccfbc31 100644 --- a/src/components/preview/BaseInfo.tsx +++ b/src/components/preview/BaseInfo.tsx @@ -40,6 +40,10 @@ const BaseInfo = ({ return template?.layout === "modern"; }, [template]); + const isWhiteTextTemplate = React.useMemo(() => { + return template?.layout === "modern" || template?.layout === "creative"; + }, [template]); + const getOrderedFields = React.useMemo(() => { if (!basic.fieldOrder) { return [ @@ -221,14 +225,14 @@ const BaseInfo = ({ className={fieldsContainerClass} style={{ fontSize: `${globalSettings?.baseFontSize || 14}px`, - color: isModernTemplate ? "#fff" : "rgb(75, 85, 99)", + color: isWhiteTextTemplate ? "#fff" : "rgb(75, 85, 99)", maxWidth: layout === "center" ? "none" : "600px", }} > {allFields.map((item) => ( ); - case "professional": - return ( -

- {renderTitle} -

- ); + case "elegant": return ( @@ -168,19 +156,7 @@ const SectionTitle = ({ type, title, globalSettings, showTitle = true }: Section ); - case "compact": - return ( -

- {renderTitle} -

- ); + default: return ( diff --git a/src/components/shared/TemplateSheet.tsx b/src/components/shared/TemplateSheet.tsx index 1083ff8..966e6d0 100644 --- a/src/components/shared/TemplateSheet.tsx +++ b/src/components/shared/TemplateSheet.tsx @@ -13,17 +13,7 @@ import { import { cn } from "@/lib/utils"; import { DEFAULT_TEMPLATES } from "@/config"; import { useResumeStore } from "@/store/useResumeStore"; -import classic from "@/assets/images/template-cover/classic.png"; -import modern from "@/assets/images/template-cover/modern.png"; -import leftRight from "@/assets/images/template-cover/left-right.png"; -import timeline from "@/assets/images/template-cover/timeline.png"; - -const templateImages: Record = { - classic, - modern, - "left-right": leftRight, - timeline -}; +import { ScrollArea } from "@/components/ui/scroll-area"; const TemplateSheet = () => { const t = useTranslations("templates"); @@ -45,33 +35,44 @@ const TemplateSheet = () => { {/* 解决警告问题 */} -
- {DEFAULT_TEMPLATES.map((template) => ( - - ))} +
+ + +