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

Merge pull request #32409 from overleaf/dp-update-reference-integrations-when-linked

Use BroadcastChannel to keep ref provider linked state up to date

GitOrigin-RevId: eea7a99daf261166b11bfad1bb50f1989040d959
David 4 месяцев назад
Родитель
Сommit
7e3b8da480

+ 19 - 0
services/web/frontend/js/shared/hooks/user-channel/use-ref-providers.ts

@@ -0,0 +1,19 @@
+import { useCallback, useState } from 'react'
+import { useUserContext } from '@/shared/context/user-context'
+import { useReceiveUser } from './use-receive-user'
+import { User } from '../../../../../types/user'
+
+export const useRefProviders = (): User['refProviders'] => {
+  const user = useUserContext()
+  const [refProviders, setRefProviders] = useState(user.refProviders)
+
+  useReceiveUser(
+    useCallback(data => {
+      if (data?.refProviders) {
+        setRefProviders(data.refProviders)
+      }
+    }, [])
+  )
+
+  return refProviders
+}