Merge branch 'master' into NTP-27557-ext-deprec
This commit is contained in:
37
packages/common/lib/utils/getPermissions.ts
Normal file
37
packages/common/lib/utils/getPermissions.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
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();
|
||||
};
|
||||
Reference in New Issue
Block a user