From 983010b5d8059955bf7e901db007cbc7432ce61a Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Wed, 24 Aug 2022 22:49:44 +0200 Subject: [PATCH] fix: collections.create event not propagated when initialized with private permissions --- app/components/SocketProvider.tsx | 5 +++++ server/queues/processors/WebsocketsProcessor.ts | 16 +++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/components/SocketProvider.tsx b/app/components/SocketProvider.tsx index 428b45123..98d561ddd 100644 --- a/app/components/SocketProvider.tsx +++ b/app/components/SocketProvider.tsx @@ -5,6 +5,7 @@ import { observer } from "mobx-react"; import * as React from "react"; import { io, Socket } from "socket.io-client"; import RootStore from "~/stores/RootStore"; +import Collection from "~/models/Collection"; import Document from "~/models/Document"; import FileOperation from "~/models/FileOperation"; import Pin from "~/models/Pin"; @@ -267,6 +268,10 @@ class SocketProvider extends React.Component { groups.remove(event.modelId); }); + this.socket.on("collections.create", (event: PartialWithId) => { + collections.add(event); + }); + this.socket.on( "collections.delete", (event: WebsocketEntityDeletedEvent) => { diff --git a/server/queues/processors/WebsocketsProcessor.ts b/server/queues/processors/WebsocketsProcessor.ts index 7af1c5ae4..5f1255563 100644 --- a/server/queues/processors/WebsocketsProcessor.ts +++ b/server/queues/processors/WebsocketsProcessor.ts @@ -13,6 +13,7 @@ import { Team, } from "@server/models"; import { + presentCollection, presentDocument, presentFileOperation, presentPin, @@ -177,22 +178,15 @@ export default class WebsocketsProcessor { .to( collection.permission ? `team-${collection.teamId}` - : `collection-${collection.id}` + : `user-${collection.createdById}` ) - .emit("entities", { - event: event.name, - collectionIds: [ - { - id: collection.id, - updatedAt: collection.updatedAt, - }, - ], - }); + .emit(event.name, presentCollection(collection)); + return socketio .to( collection.permission ? `team-${collection.teamId}` - : `collection-${collection.id}` + : `user-${collection.createdById}` ) .emit("join", { event: event.name,