This commit is contained in:
Timothy Jaeryang Baek
2026-01-05 17:44:44 +04:00
parent 3f577c0c3f
commit e27fb3e291
2 changed files with 16 additions and 5 deletions

View File

@@ -131,9 +131,17 @@ export class SocketIOCollaborationProvider {
const isEmptyEditor = !this.editor?.getText().trim();
if (isEmptyEditor && this.editor) {
if (this.initialContent && (data?.sessions ?? ['']).length === 1) {
const editorYdoc = prosemirrorJSONToYDoc(this.editor.schema, this.initialContent);
if (editorYdoc) {
Y.applyUpdate(this.doc, Y.encodeStateAsUpdate(editorYdoc));
// Check if initialContent is HTML (string) or JSON (object)
if (typeof this.initialContent === 'string') {
// HTML content - let the editor parse it, then sync to Yjs
this.editor.commands.setContent(this.initialContent);
// The Yjs plugin will automatically sync the content
} else {
// JSON content - use the existing approach
const editorYdoc = prosemirrorJSONToYDoc(this.editor.schema, this.initialContent);
if (editorYdoc) {
Y.applyUpdate(this.doc, Y.encodeStateAsUpdate(editorYdoc));
}
}
}
} else {

View File

@@ -145,6 +145,9 @@
let inputElement = null;
// Computed HTML for editor: fall back to markdown if HTML is missing
$: editorHtml = note?.data?.content?.html || (note?.data?.content?.md ? marked.parse(note.data.content.md) : '');
const init = async () => {
loading = true;
const res = await getNoteById(localStorage.token, id).catch((error) => {
@@ -154,7 +157,7 @@
messages = [];
if (res) {
if (res) {
note = res;
files = res.data.files || [];
@@ -1154,7 +1157,7 @@ Provide the enhanced notes in markdown format. Use markdown syntax for headings,
className="input-prose-sm px-0.5 h-[calc(100%-2rem)]"
json={true}
bind:value={note.data.content.json}
html={note.data?.content?.html}
html={editorHtml}
documentId={`note:${note.id}`}
collaboration={true}
socket={$socket}