"use client"; import { useState } from "react"; import Link from "next/link"; import { marked } from "marked"; export default function ResumeEditor({ resume }: { resume: { id: string; name: string; markdown: string } }) { const [md, setMd] = useState(resume.markdown); const [saved, setSaved] = useState(true); const [saving, setSaving] = useState(false); const [preview, setPreview] = useState(true); async function save() { setSaving(true); try { await fetch(`/api/resumes/${resume.id}`, { method: "PATCH", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ markdown: md }), }); setSaved(true); } finally { setSaving(false); } } function printResume() { const w = window.open("", "_blank"); if (!w) return; w.document.write(`${resume.name}${marked.parse(md)}`); w.document.close(); setTimeout(() => w.print(), 300); } return (
{/* Top Navigation & Toolbar */}
Back to Resumes

{resume.name}

{saved ? ( Saved ) : ( Unsaved changes )}
{/* Action Toolbar Buttons */}
{/* Editor & Preview Split Grid */}
{/* Monospace Markdown Editor */}
Markdown Source {md.length} characters