use-receive-user.ts 473 B

12345678910111213141516
  1. import { useEffect } from 'react'
  2. import { useUserChannel } from './use-user-channel'
  3. export const useReceiveUser = (
  4. handleData: (data: Record<string, any>) => void
  5. ) => {
  6. const channel = useUserChannel()
  7. useEffect(() => {
  8. const abortController = new AbortController()
  9. channel?.addEventListener('message', ({ data }) => handleData(data), {
  10. signal: abortController.signal,
  11. })
  12. return () => abortController.abort()
  13. }, [channel, handleData])
  14. }