diff --git a/src/app/components/Editor.tsx b/src/app/components/Editor.tsx new file mode 100644 index 0000000..2439750 --- /dev/null +++ b/src/app/components/Editor.tsx @@ -0,0 +1,28 @@ +"use client"; +import { useEffect, useRef } from "react"; + +export function Editor({ value, onChange, placeholder }: { value: string; onChange: (v: string) => void; placeholder?: string }) { + const ref = useRef(null); + useEffect(() => { + const el = ref.current; + if (!el) return; + if (el.innerHTML !== value) el.innerHTML = value || ""; + }, [value]); + return ( +
onChange((e.target as HTMLDivElement).innerHTML)} + data-placeholder={placeholder} + style={{ + minHeight: 160, + border: "1px solid #ddd", + borderRadius: 6, + padding: 12, + }} + suppressContentEditableWarning + /> + ); +} + + diff --git a/src/app/posts/[id]/edit/page.tsx b/src/app/posts/[id]/edit/page.tsx index 40dd223..4d6e7ca 100644 --- a/src/app/posts/[id]/edit/page.tsx +++ b/src/app/posts/[id]/edit/page.tsx @@ -3,6 +3,7 @@ import { useEffect, useState } from "react"; import { useParams, useRouter } from "next/navigation"; import { useToast } from "@/app/components/ui/ToastProvider"; import { UploadButton } from "@/app/components/UploadButton"; +import { Editor } from "@/app/components/Editor"; export default function EditPostPage() { const params = useParams<{ id: string }>(); @@ -43,7 +44,7 @@ export default function EditPostPage() {

글 수정

setForm({ ...form, title: e.target.value })} /> -