This commit is contained in:
talksik
2022-06-01 20:16:41 -05:00
parent b593f38152
commit 36edda9f30
@@ -1,6 +1,7 @@
import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react'; import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
import { useMediaDevices, useMount } from 'react-use'; import { useMediaDevices, useMount } from 'react-use';
import TwilioAccessToken from '@nirvana/core/src/functions/response/TwilioAccessToken.response';
import { getTwilioAccessToken } from '../firebase/functions'; import { getTwilioAccessToken } from '../firebase/functions';
import { useImmer } from 'use-immer'; import { useImmer } from 'use-immer';
import { useSnackbar } from 'notistack'; import { useSnackbar } from 'notistack';
@@ -8,14 +9,6 @@ import { useSnackbar } from 'notistack';
// device ids for different types of content // device ids for different types of content
type DeviceSelections = { audio?: string; video?: string }; type DeviceSelections = { audio?: string; video?: string };
interface ICommunicationsContext {
userLocalStream?: MediaStream;
userDeviceSelections?: DeviceSelections;
}
const CommunicationsContext = React.createContext<ICommunicationsContext>({});
function useUserDevices() { function useUserDevices() {
const devices = useMemo(() => { const devices = useMemo(() => {
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) { if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
@@ -57,6 +50,14 @@ function useUserDevices() {
return { audioOutputDevices, audioInputDevices, videoInputDevices }; return { audioOutputDevices, audioInputDevices, videoInputDevices };
} }
interface ICommunicationsContext {
userLocalStream?: MediaStream;
userDeviceSelections?: DeviceSelections;
}
const CommunicationsContext = React.createContext<ICommunicationsContext>({});
// todo save the selected devices in localstorage // todo save the selected devices in localstorage
export function CommunicationsProvider({ children }: { children: React.ReactNode }) { export function CommunicationsProvider({ children }: { children: React.ReactNode }) {
const { enqueueSnackbar } = useSnackbar(); const { enqueueSnackbar } = useSnackbar();
@@ -67,16 +68,17 @@ export function CommunicationsProvider({ children }: { children: React.ReactNode
const getAuthToken = useCallback(async () => { const getAuthToken = useCallback(async () => {
try { try {
const result = await getTwilioAccessToken(); const result = await getTwilioAccessToken();
console.log(result); const data = result.data as TwilioAccessToken;
enqueueSnackbar('got token data'); enqueueSnackbar('got token data');
return data.token;
} catch (error) { } catch (error) {
console.error(error); console.error(error);
enqueueSnackbar('something went wrong trying to set up calls', { variant: 'error' }); enqueueSnackbar('something went wrong trying to set up calls', { variant: 'error' });
} }
}, [enqueueSnackbar]); }, [enqueueSnackbar]);
useMount(getAuthToken);
// const getUserAudioDevices = useMemo(() => { // const getUserAudioDevices = useMemo(() => {
// console.log(devices); // console.log(devices);
// }, [devices]); // }, [devices]);