From 797bcf2ff91fd29455612a254ebd9c0e1b215823 Mon Sep 17 00:00:00 2001 From: JOYCEQL <1449239013@qq.com> Date: Tue, 24 Feb 2026 14:00:34 +0800 Subject: [PATCH] feat: add more template --- src/app/app/dashboard/templates/page.tsx | 81 ++++++----- .../preview/IframeTemplateViewer.tsx | 69 ++++++++++ src/components/preview/SectionTitle.tsx | 86 +++++++++++- src/components/templates/CompactTemplate.tsx | 129 ++++++++++++++++++ src/components/templates/CreativeTemplate.tsx | 119 ++++++++++++++++ src/components/templates/ElegantTemplate.tsx | 108 +++++++++++++++ .../templates/MinimalistTemplate.tsx | 106 ++++++++++++++ .../templates/ProfessionalTemplate.tsx | 129 ++++++++++++++++++ src/components/templates/TemplateContext.tsx | 25 ++++ src/components/templates/index.tsx | 22 ++- src/config/index.ts | 105 ++++++++++++++ src/config/templates.ts | 44 ++++++ src/i18n/locales/en.json | 20 +++ src/i18n/locales/zh.json | 20 +++ src/routes/app/preview-template/$id.tsx | 6 + src/types/template.ts | 2 +- 16 files changed, 1027 insertions(+), 44 deletions(-) create mode 100644 src/components/preview/IframeTemplateViewer.tsx create mode 100644 src/components/templates/CompactTemplate.tsx create mode 100644 src/components/templates/CreativeTemplate.tsx create mode 100644 src/components/templates/ElegantTemplate.tsx create mode 100644 src/components/templates/MinimalistTemplate.tsx create mode 100644 src/components/templates/ProfessionalTemplate.tsx create mode 100644 src/components/templates/TemplateContext.tsx create mode 100644 src/routes/app/preview-template/$id.tsx diff --git a/src/app/app/dashboard/templates/page.tsx b/src/app/app/dashboard/templates/page.tsx index 3f58eba..e013853 100644 --- a/src/app/app/dashboard/templates/page.tsx +++ b/src/app/app/dashboard/templates/page.tsx @@ -3,28 +3,13 @@ import { useState } from "react"; import { useTranslations } from "@/i18n/compat/client"; import { motion } from "framer-motion"; import { useRouter } from "@/lib/navigation"; -import Image from "@/lib/image"; - +import { cn } from "@/lib/utils"; +import { DEFAULT_TEMPLATES } from "@/config"; import { useResumeStore } from "@/store/useResumeStore"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog"; -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"; - -import { cn } from "@/lib/utils"; -import { DEFAULT_TEMPLATES } from "@/config"; - -const templateImages: Record = { - classic, - modern, - "left-right": leftRight, - timeline, -}; - const container = { hidden: { opacity: 0 }, show: { @@ -110,15 +95,25 @@ const TemplatesPage = () => { -
-
- {t(`${templateKey}.name`)} +
+