From ba6ab16db5dfb639eff37215e654e9660fec6d3e Mon Sep 17 00:00:00 2001 From: JOYCEQL <1449239013@qq.com> Date: Sun, 10 Nov 2024 20:03:14 +0800 Subject: [PATCH] fix: html2pdf ssr error --- apps/fronted/src/app/workbench/page.tsx | 2 +- .../src/components/editor/IconSelector.tsx | 20 ------------------- .../src/components/editor/PdfExport.tsx | 4 ++-- apps/fronted/src/store/useResumeStore.ts | 2 +- 4 files changed, 4 insertions(+), 24 deletions(-) diff --git a/apps/fronted/src/app/workbench/page.tsx b/apps/fronted/src/app/workbench/page.tsx index 5ee1ba1..b9d516d 100644 --- a/apps/fronted/src/app/workbench/page.tsx +++ b/apps/fronted/src/app/workbench/page.tsx @@ -272,7 +272,7 @@ export default function Home() { exit={{ x: "-100%" }} transition={{ type: "spring", damping: 20 }} > - setShowMobileSidebar(false)} /> + )} diff --git a/apps/fronted/src/components/editor/IconSelector.tsx b/apps/fronted/src/components/editor/IconSelector.tsx index 234a2e7..ad18ed1 100644 --- a/apps/fronted/src/components/editor/IconSelector.tsx +++ b/apps/fronted/src/components/editor/IconSelector.tsx @@ -24,26 +24,6 @@ const IconSelector = ({ value, onChange, theme = "light" }) => { const [open, setOpen] = React.useState(false); const [icons, setIcons] = React.useState(ICONS); - // 在组件挂载时加载图标 - React.useEffect(() => { - const loadIcons = async () => { - const lucide = await import("lucide-react"); - // console.log(lucide, "lucide"); - // const iconList = Object.entries(lucide) - // .filter( - // ([name]) => name[0] === name[0].toUpperCase() // 只选择以大写字母开头的导出(图标组件) - // ) - // ?.map(([name, component]) => ({ - // name, - // component - // })); - // console.log(iconList, "iconList"); - // setIcons(iconList); - }; - - loadIcons(); - }, []); - // 获取当前选中的图标组件 const getCurrentIcon = React.useCallback(() => { if (!value) return User; diff --git a/apps/fronted/src/components/editor/PdfExport.tsx b/apps/fronted/src/components/editor/PdfExport.tsx index c24bdea..0636b52 100644 --- a/apps/fronted/src/components/editor/PdfExport.tsx +++ b/apps/fronted/src/components/editor/PdfExport.tsx @@ -2,8 +2,9 @@ import React, { useState } from "react"; import { motion } from "framer-motion"; import { Download, Loader2 } from "lucide-react"; -import html2pdf from "html2pdf.js"; import { useResumeStore } from "@/store/useResumeStore"; +import dynamic from "next/dynamic"; +const html2pdf = dynamic(() => import("html2pdf.js"), { ssr: false }); export function PdfExport() { const { basic, theme } = useResumeStore(); @@ -30,7 +31,6 @@ export function PdfExport() { orientation: "portrait" } }; - const res = html2pdf().set(opt).from(element).save(); setIsExporting(false); return res; diff --git a/apps/fronted/src/store/useResumeStore.ts b/apps/fronted/src/store/useResumeStore.ts index 109b019..5a71e07 100644 --- a/apps/fronted/src/store/useResumeStore.ts +++ b/apps/fronted/src/store/useResumeStore.ts @@ -65,7 +65,7 @@ const initialState = { phone: "13800138000", location: "北京市", summary: "5年前端开发经验...", - birthDate: "1995-01-01", + birthDate: "", icons: {}, customFields: [] },