export default function useDevices()

in app/hooks/useDevices.tsx [10:33]


export default function useDevices() {
  const chime: ChimeSdkWrapper | null = useContext(getChimeContext());
  const [deviceSwitcherState, setDeviceUpdated] = useState({
    currentAudioInputDevice: chime?.currentAudioInputDevice,
    currentAudioOutputDevice: chime?.currentAudioOutputDevice,
    currentVideoInputDevice: chime?.currentVideoInputDevice,
    audioInputDevices: chime?.audioInputDevices,
    audioOutputDevices: chime?.audioOutputDevices,
    videoInputDevices: chime?.videoInputDevices
  });
  useEffect(() => {
    const devicesUpdatedCallback = (fullDeviceInfo: FullDeviceInfoType) => {
      setDeviceUpdated({
        ...fullDeviceInfo
      });
    };

    chime?.subscribeToDevicesUpdated(devicesUpdatedCallback);
    return () => {
      chime?.unsubscribeFromDevicesUpdated(devicesUpdatedCallback);
    };
  }, []);
  return deviceSwitcherState;
}