// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { AudioVideoFacade } from 'amazon-chime-sdk-js'; import React, { createContext, useContext, useEffect, useState } from 'react'; import { useMeetingManager } from '../../providers/MeetingProvider'; type AudioVideoValue = AudioVideoFacade | null; export const AudioVideoContext = createContext(null); export const AudioVideoProvider: React.FC> = ({ children, }) => { const meetingManager = useMeetingManager(); const [audioVideo, setAudioVideo] = useState(null); useEffect(() => { function audioVideoUpdateCb(av: AudioVideoValue) { setAudioVideo(av); } meetingManager.subscribeToAudioVideo(audioVideoUpdateCb); return () => meetingManager.unsubscribeFromAudioVideo(audioVideoUpdateCb); }, []); return ( {children} ); }; export const useAudioVideo = (): AudioVideoValue => { const audioVideo = useContext(AudioVideoContext); return audioVideo; };