feat: duplicated resume

This commit is contained in:
JOYCEQL
2026-02-26 01:24:32 +08:00
parent 77a5e670ed
commit c0b9dff50f
2 changed files with 12 additions and 3 deletions
+1
View File
@@ -67,6 +67,7 @@ export function EditorHeader({ isMobile }: EditorHeaderProps) {
</div>
)}
<Input
key={activeResume?.id || "resume-title"}
defaultValue={activeResume?.title || ""}
onBlur={(e) => {
updateResumeTitle(e.target.value || "未命名简历");
+11 -3
View File
@@ -88,7 +88,7 @@ const PreviewDock = ({
openaiApiEndpoint
} = useAIConfigStore();
const { duplicateResume, activeResumeId, activeResume } = useResumeStore();
const { duplicateResume, setActiveResume, activeResumeId, activeResume } = useResumeStore();
const { globalSettings = {}, title } = activeResume || {};
const getOptimizedStyles = () => {
@@ -414,12 +414,20 @@ const PreviewDock = ({
if (!activeResumeId) return;
try {
const newId = duplicateResume(activeResumeId);
const targetPath = `/app/workbench/${newId}`;
setActiveResume(newId);
toast.success(t("copyResume.success"));
router.push(`/app/workbench/${newId}`);
router.push(targetPath);
requestAnimationFrame(() => {
if (window.location.pathname !== targetPath) {
window.location.assign(targetPath);
}
});
} catch (error) {
toast.error(t("copyResume.error"));
}
}, [activeResumeId, duplicateResume, router, t]);
}, [activeResumeId, duplicateResume, router, setActiveResume, t]);
const isLoading = isExporting || isExportingJson;