* NTP-27035 | Added Microphone permission check; * NTP-27035 | resolved comments * NTP-27035 | file name change * NTP-27035 | constants file name change * NTP-27035 | auto reload on permission change * NTP-27035 | version bump * Publish - @universal-call-sdk/adapter-ameyo@1.3.1 - @universal-call-sdk/common@1.3.1 - @universal-call-sdk/core@1.3.1 --------- Co-authored-by: varnit.goyal <varnit.goyal@navi.com>
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import { MICROPHONE, PermissionState } from "../constants";
|
|
|
|
export const checkPermission = async (permissionName: PermissionName, mediaType: MediaStreamConstraints): Promise<boolean> => {
|
|
try {
|
|
if (!navigator.permissions) {
|
|
return false;
|
|
}
|
|
|
|
const permission = await navigator.permissions.query({ name: permissionName });
|
|
permission.onchange = () => {
|
|
location.reload();
|
|
};
|
|
|
|
switch (permission.state) {
|
|
case PermissionState.GRANTED:
|
|
return true;
|
|
case PermissionState.PROMPT:
|
|
await navigator.mediaDevices.getUserMedia(mediaType);
|
|
return false;
|
|
case PermissionState.DENIED:
|
|
return false;
|
|
default:
|
|
return false;
|
|
}
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
};
|
|
|
|
export const checkMicrophonePermission = async (): Promise<boolean> => {
|
|
return checkPermission(MICROPHONE, { audio: true });
|
|
};
|
|
|
|
|
|
export const checkAllPermissions = async (): Promise<boolean> => {
|
|
return await checkMicrophonePermission();
|
|
}; |