Просмотр исходного кода

Add "new-comment-threads" event handler for new review panel (#23298)

GitOrigin-RevId: 00628e6421a563f5157415d235ee5e7c2818e690
Domagoj Kriskovic 1 год назад
Родитель
Сommit
6d45fea773
1 измененных файлов с 28 добавлено и 0 удалено
  1. 28 0
      services/web/frontend/js/features/review-panel-new/context/threads-context.tsx

+ 28 - 0
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(
   const actions = useMemo(
     () => ({
     () => ({
       async addComment(pos: number, text: string, content: string) {
       async addComment(pos: number, text: string, content: string) {