Add createElement and updateElement methods to YjsDocument

This commit is contained in:
2026-06-22 21:05:20 +00:00
parent 18ea2512ba
commit 88703d70db
+40
View File
@@ -63,4 +63,44 @@ export class YjsDocument {
destroy() { destroy() {
this.doc.destroy(); this.doc.destroy();
} }
// Create a new element
createElement(element: Element): void {
this.doc.transact(() => {
this.elements.push([element]);
});
}
// Update an existing element
updateElement(id: string, updates: Partial<Element>): void {
this.doc.transact(() => {
const index = this.elements.toArray().findIndex(el => el.id === id);
if (index !== -1) {
const currentElement = this.elements.get(index);
const updatedElement = { ...currentElement, ...updates };
this.elements.delete(index, 1);
this.elements.insert(index, [updatedElement]);
}
});
}
// Delete an element
deleteElement(id: string): void {
this.doc.transact(() => {
const index = this.elements.toArray().findIndex(el => el.id === id);
if (index !== -1) {
this.elements.delete(index, 1);
}
});
}
// Get all elements
getElements(): Element[] {
return this.elements.toArray();
}
// Get element by ID
getElementById(id: string): Element | undefined {
return this.elements.toArray().find(el => el.id === id);
}
} }