Skip to content

Commit c74e408

Browse files
committed
Refactor to use high-level awareness API
Use provider.setAwarenessField() instead of provider.awareness.setLocalStateField() for better encapsulation and consistency with the public Hocuspocus API.
1 parent 4143523 commit c74e408

File tree

1 file changed

+5
-16
lines changed

1 file changed

+5
-16
lines changed

src/components/ui/coaching-sessions/editor-cache-context.tsx

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,7 @@ export const EditorCacheProvider: React.FC<EditorCacheProviderProps> = ({
141141

142142
// IMPORTANT: Only set our custom "presence" field
143143
// Let CollaborationCaret manage the "user" field to avoid conflicts
144-
if (provider.awareness) {
145-
provider.awareness.setLocalStateField("presence", userPresence);
146-
}
144+
provider.setAwarenessField("presence", userPresence);
147145

148146
// Provider event handlers: sync completion enables collaborative editing
149147
// IMPORTANT: Track if we've already created extensions to prevent recreation
@@ -214,25 +212,18 @@ export const EditorCacheProvider: React.FC<EditorCacheProviderProps> = ({
214212
});
215213
// Only update our custom "presence" field on reconnect
216214
// CollaborationCaret will handle the "user" field
217-
if (provider.awareness) {
218-
provider.awareness.setLocalStateField("presence", connectedPresence);
219-
}
215+
provider.setAwarenessField("presence", connectedPresence);
220216
});
221217

222218
provider.on("disconnect", () => {
223219
const disconnectedPresence = createDisconnectedPresence(userPresence);
224-
if (provider.awareness) {
225-
provider.awareness.setLocalStateField("presence", disconnectedPresence);
226-
}
220+
provider.setAwarenessField("presence", disconnectedPresence);
227221
});
228222

229223
// Graceful disconnect on page unload
230224
const handleBeforeUnload = () => {
231225
const disconnectedPresence = createDisconnectedPresence(userPresence);
232-
// Use low-level awareness API to match CollaborationCaret
233-
if (provider.awareness) {
234-
provider.awareness.setLocalStateField("presence", disconnectedPresence);
235-
}
226+
provider.setAwarenessField("presence", disconnectedPresence);
236227
};
237228

238229
window.addEventListener("beforeunload", handleBeforeUnload);
@@ -329,9 +320,7 @@ export const EditorCacheProvider: React.FC<EditorCacheProviderProps> = ({
329320
try {
330321
// Clear our custom presence field on logout
331322
// CollaborationCaret will clean up the "user" field
332-
if (provider.awareness) {
333-
provider.awareness.setLocalStateField("presence", null);
334-
}
323+
provider.setAwarenessField("presence", null);
335324

336325
// Graceful provider shutdown
337326
provider.disconnect();

0 commit comments

Comments
 (0)