BlueWallet/helpers/scan-qr.ts

28 lines
941 B
TypeScript
Raw Normal View History

2023-10-17 09:35:10 -04:00
import { Platform } from 'react-native';
import { check, request, PERMISSIONS, RESULTS } from 'react-native-permissions';
2025-02-23 20:32:52 +00:00
import { navigationRef } from '../NavigationService.ts';
2024-07-23 13:44:04 -04:00
2023-10-17 09:35:10 -04:00
const isCameraAuthorizationStatusGranted = async () => {
const status = await check(Platform.OS === 'android' ? PERMISSIONS.ANDROID.CAMERA : PERMISSIONS.IOS.CAMERA);
return status === RESULTS.GRANTED;
};
2021-02-18 16:37:43 +03:00
2023-10-17 09:35:10 -04:00
const requestCameraAuthorization = () => {
return request(Platform.OS === 'android' ? PERMISSIONS.ANDROID.CAMERA : PERMISSIONS.IOS.CAMERA);
2021-02-18 16:37:43 +03:00
};
2022-09-05 19:34:02 +01:00
2025-02-25 15:24:43 +00:00
const scanQrHelper = async (): Promise<string> => {
await requestCameraAuthorization();
2025-02-23 20:32:52 +00:00
return new Promise(resolve => {
if (navigationRef.isReady()) {
navigationRef.current?.navigate('ScanQRCode', {
onBarScanned: (data: string) => {
resolve(data);
},
});
}
});
};
export { isCameraAuthorizationStatusGranted, requestCameraAuthorization, scanQrHelper };