diff --git a/backend/app/main.py b/backend/app/main.py index 14b8b273f953da54d96be685ba46094d7cd24fd9..38de27689f431573523af08cdc18ec62800c2cd2 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -574,10 +574,10 @@ def create_message( detail="You do not have permission to create a message in this session", ) - message = crud.create_message(db, entryMessage, current_user, db_session) - action = "create" if entryMessage.message_id is None else "update" + message = crud.create_message(db, entryMessage, current_user, db_session) + background_tasks.add_task(store_metadata, db, message.id, entryMessage.metadata) background_tasks.add_task( send_websoket_message, diff --git a/frontend/src/lib/types/session.ts b/frontend/src/lib/types/session.ts index c8b7ea9ee48ede51084263e8fb6df2d87714aeb2..332cb20e06380236134376910f866bec9aad21f5 100644 --- a/frontend/src/lib/types/session.ts +++ b/frontend/src/lib/types/session.ts @@ -254,7 +254,7 @@ export default class Session { } } else if (data['action'] === 'update') { const message = Message.parse(data['data']); - if (message) { + if (message && !get(this._messages).find((m) => m.id === message.id)) { this._messages.update((messages) => { const mEdited = messages.find((m) => m.message_id === message.message_id); if (!mEdited) return messages;