Comments (2)
Hooks are planned for v5: https://x.com/zoontek/status/1798829383559602444/photo/1
As it requires synchronous check, it can't be added to v4 (it's breaking)
from react-native-permissions.
Something like this:
import React, {useEffect, useState} from 'react';
import {checkMultiple, requestMultiple, RESULTS} from 'react-native-permissions';
import type {Permission} from 'react-native-permissions/src/types.ts';
import {ActivityIndicator, Platform} from 'react-native';
interface Props extends React.PropsWithChildren {
missing: React.JSX.Element;
androidPermissions?: Permission[];
iosPermissions?: Permission[];
}
export default function PermissionsRequired(props: Props): React.JSX.Element {
const [missingPermissions, setMissingPermissions] = useState<boolean>();
const permissions = Platform.OS === 'android' ? props.androidPermissions : props.iosPermissions;
useEffect(() => {
if (permissions === undefined || permissions.length === 0) {
setMissingPermissions(false);
return;
}
checkMultiple(permissions)
.then(r => {
const failed: Permission[] = [];
for (let perm of permissions) {
if (r[perm] !== RESULTS.GRANTED) {
failed.push(perm);
}
}
if (failed.length > 0) {
requestMultiple(failed).then(rec => {
let anyMissing = false;
for (let perm of permissions) {
if (rec[perm] !== RESULTS.GRANTED) {
anyMissing = true;
}
}
setMissingPermissions(anyMissing);
});
} else {
setMissingPermissions(false);
}
})
.catch(e => {
setMissingPermissions(true); //Should we show a different error here?
});
}, []);
return missingPermissions === undefined ? (
<ActivityIndicator />
) : missingPermissions ? (
props.missing
) : (
<>{props.children}</>
);
}
from react-native-permissions.
Related Issues (20)
- Request APP_TRACKING_TRANSPARENCY always return 'blocked' before user accept request HOT 6
- Notification Permission In Android HOT 3
- I encountered an error message stating 'ENOENT: no such file or directory HOT 4
- AVAudioApplication build fail HOT 3
- Invalid `Podfile` file: undefined method `prepare_react_native_project!' HOT 1
- jest testing: waitForNextUdpate times out on checkPermissions HOT 8
- Unable to detect IOS album permissions HOT 1
- ios.permission.FACE_ID denied HOT 3
- [Android] 'Allow once' permission option always returns granted as permission status even after killing the app and relaunch it again HOT 1
- [Android] 'Don't Allow' permission option always returns denied as permission status and doesn't request the permission again HOT 3
- Crash on Android: Unable to resume activity java.lang.reflect.InvocationTargetException HOT 1
- await request(PERMISSIONS.IOS.PHOTO_LIBRARY); is always unavailable HOT 13
- App Hang: The app was terminated while unresponsive on RNPermissionHandlerLocationWhenInUse HOT 2
- No permission handler detected React-native 0.74.1 HOT 4
- Permission issue in vivo X70 HOT 1
- unavailable response in await check("ios.permission.MICROPHONE") and await request("ios.permission.MICROPHONE") on iOS HOT 4
- Confusion with setup instructions and Expo HOT 2
- Motion permission request not works on iPhone 13 Pro HOT 5
- IOS - Crash on RNPermissions lockHandler
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-native-permissions.