react-native-permissions
Version:
An unified permissions API for React Native on iOS, Android and Windows
39 lines (34 loc) • 1.1 kB
text/typescript
import type {Contract} from './contract';
import {RESULTS} from './results';
import type {NotificationsResponse, Permission, PermissionStatus} from './types';
import {
checkLocationAccuracy,
openLimitedPhotoLibraryPicker,
requestLocationAccuracy,
} from './unsupportedPlatformMethods';
async function check(): Promise<PermissionStatus> {
return RESULTS.UNAVAILABLE;
}
async function checkNotifications(): Promise<NotificationsResponse> {
return {status: RESULTS.UNAVAILABLE, settings: {}};
}
async function checkMultiple<P extends Permission[]>(
permissions: P,
): Promise<Record<P[number], PermissionStatus>> {
return permissions.reduce((acc, permission: P[number]) => {
acc[permission] = RESULTS.UNAVAILABLE;
return acc;
}, {} as Record<P[number], PermissionStatus>);
}
export const methods: Contract = {
check,
checkLocationAccuracy,
checkMultiple,
checkNotifications,
openLimitedPhotoLibraryPicker,
openSettings: Promise.reject,
request: check,
requestLocationAccuracy,
requestMultiple: checkMultiple,
requestNotifications: checkNotifications,
};