Files
call-sdk/packages/common/lib/utils/getPermissions.ts
Somarapu Vamshi 52ee53a5c6 NTP-27035 | Added checks for microphone permission (#41)
* 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>
2025-02-03 14:24:16 +05:30

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();
};