diff --git a/services/web/frontend/js/features/review-panel-new/context/threads-context.tsx b/services/web/frontend/js/features/review-panel-new/context/threads-context.tsx index 81ddfdd85b..fefb06b353 100644 --- a/services/web/frontend/js/features/review-panel-new/context/threads-context.tsx +++ b/services/web/frontend/js/features/review-panel-new/context/threads-context.tsx @@ -211,6 +211,34 @@ export const ThreadsProvider: FC = ({ children }) => { }, []) ) + useSocketListener( + socket, + 'new-comment-threads', + useCallback(threads => { + setData(prevState => { + const newThreads = { ...prevState } + for (const threadId of Object.keys(threads)) { + const thread = threads[threadId] + const newThreadData: ReviewPanelCommentThread = { + messages: [], + resolved: thread.resolved, + resolved_at: thread.resolved_at, + resolved_by_user_id: thread.resolved_by_user_id, + resolved_by_user: thread.resolved_by_user, + } + for (const message of thread.messages) { + newThreadData.messages.push({ + ...message, + timestamp: new Date(message.timestamp), + }) + } + newThreads[threadId as ThreadId] = newThreadData + } + return newThreads + }) + }, []) + ) + const actions = useMemo( () => ({ async addComment(pos: number, text: string, content: string) {