diff --git a/apps/web/package.json b/apps/web/package.json index 458202a..f4df651 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -46,7 +46,8 @@ "react-dom": "^19.0.0", "react-grid-layout": "^2.2.2", "recharts": "^3.7.0", - "socket.io-client": "^4.8.3" + "socket.io-client": "^4.8.3", + "tiptap-markdown": "^0.9.0" }, "devDependencies": { "@mosaic/config": "workspace:*", diff --git a/apps/web/src/components/knowledge/EntryEditor.tsx b/apps/web/src/components/knowledge/EntryEditor.tsx index e7aaf64..de352a8 100644 --- a/apps/web/src/components/knowledge/EntryEditor.tsx +++ b/apps/web/src/components/knowledge/EntryEditor.tsx @@ -1,7 +1,7 @@ "use client"; -import React, { useState, useRef } from "react"; -import { LinkAutocomplete } from "./LinkAutocomplete"; +import React from "react"; +import { KnowledgeEditor } from "./KnowledgeEditor"; interface EntryEditorProps { content: string; @@ -9,57 +9,21 @@ interface EntryEditorProps { } /** - * EntryEditor - Markdown editor with live preview and link autocomplete + * EntryEditor - WYSIWYG editor for knowledge entries. + * Wraps KnowledgeEditor (Tiptap) with markdown round-trip. + * Content is stored as markdown; the editor provides rich text editing. */ export function EntryEditor({ content, onChange }: EntryEditorProps): React.JSX.Element { - const [showPreview, setShowPreview] = useState(false); - const textareaRef = useRef(null); - return ( -
-
- - -
- - {showPreview ? ( -
-
{content}
-
- ) : ( -
-