Skip to content

Commit 3c78591

Browse files
committed
fix: enable real-time sync for notes and folders across tabs
1 parent e20005b commit 3c78591

3 files changed

Lines changed: 22 additions & 11 deletions

File tree

src/hooks/useNotesOperations.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -466,12 +466,23 @@ export function useNotesOperations({
466466
const createFolder = useCallback(
467467
async (name: string, color: string = '#3b82f6', parentId?: string) => {
468468
try {
469-
const apiFolder = await api.createFolder({
469+
const folderData: {
470+
name: string;
471+
color: string;
472+
isDefault: boolean;
473+
parentId?: string;
474+
} = {
470475
name,
471476
color,
472-
parentId: parentId || selectedFolder?.id,
473477
isDefault: false,
474-
});
478+
};
479+
480+
// Only include parentId if it's provided
481+
if (parentId) {
482+
folderData.parentId = parentId;
483+
}
484+
485+
const apiFolder = await api.createFolder(folderData);
475486

476487
const newFolder = {
477488
...apiFolder,

src/services/webSocketService.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ class WebSocketService implements WebSocketServiceInterface {
311311

312312
this.sendMessage({
313313
type: 'folder_created',
314+
folderId: folder.id,
314315
folderData: folder,
315316
});
316317
}
@@ -523,17 +524,15 @@ class WebSocketService implements WebSocketServiceInterface {
523524
break;
524525

525526
case 'note_created_sync':
526-
if (message.fromUserId !== this.state.userId) {
527-
this.state.lastSync = Date.now();
528-
this.eventHandlers.onNoteCreatedSync?.(message);
529-
}
527+
// Process note creation sync for cross-tab synchronization
528+
this.state.lastSync = Date.now();
529+
this.eventHandlers.onNoteCreatedSync?.(message);
530530
break;
531531

532532
case 'note_deleted_sync':
533-
if (message.fromUserId !== this.state.userId) {
534-
this.state.lastSync = Date.now();
535-
this.eventHandlers.onNoteDeletedSync?.(message);
536-
}
533+
// Process note deletion sync for cross-tab synchronization
534+
this.state.lastSync = Date.now();
535+
this.eventHandlers.onNoteDeletedSync?.(message);
537536
break;
538537

539538
case 'folder_created_sync':

src/types/websocket.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export interface NoteDeletedMessage extends WebSocketOutgoingMessage {
6767

6868
export interface FolderCreatedMessage extends WebSocketOutgoingMessage {
6969
type: 'folder_created';
70+
folderId: string;
7071
folderData: Folder;
7172
}
7273

0 commit comments

Comments
 (0)