RocketChat/Rocket.Chat

View on GitHub
packages/fuselage-ui-kit/src/blocks/VideoConferenceBlock/hooks/useVideoConfDataStream.ts

Summary

Maintainability
A
0 mins
Test Coverage
import type { IRoom } from '@rocket.chat/core-typings';
import { useStream } from '@rocket.chat/ui-contexts';
import { useQueryClient } from '@tanstack/react-query';
import { useEffect } from 'react';

import { useVideoConfData } from './useVideoConfData';

export const useVideoConfDataStream = ({
  rid,
  callId,
}: {
  rid: IRoom['_id'];
  callId: string;
}) => {
  const queryClient = useQueryClient();

  const subscribeNotifyRoom = useStream('notify-room');

  useEffect(() => {
    return subscribeNotifyRoom(
      `${rid}/videoconf`,
      (id) =>
        id === callId &&
        queryClient.invalidateQueries(['video-conference', callId])
    );
  }, [rid, callId, subscribeNotifyRoom, queryClient]);

  return useVideoConfData({ callId });
};