Loading mobile/src/hooks/useQRScanner.ts 0 → 100644 +29 −0 Original line number Diff line number Diff line import { useEffect, useState } from "react"; import * as SecureStore from "expo-secure-store"; import { Camera, PermissionResponse } from "expo-camera"; import { BarCodeScannerResult } from "expo-barcode-scanner"; export const useQRScanner = () => { const [status, requestPermission] = Camera.useCameraPermissions(); const [hasPermission, setHasPermission] = useState<boolean>(false); const [qrData, setQRData] = useState<string | null>(null); const [scanning, setScanning] = useState<boolean>(qrData === null); const getPermission = async () => { const permission = await requestPermission(); if (permission.granted) { setHasPermission(true); } }; const onQRScanned = (data: BarCodeScannerResult) => { console.log(data.data); setQRData(data.data); setScanning(false); }; useEffect(() => { if (status?.granted) { setHasPermission(true); } }, [status]); return { hasPermission, getPermission, scanning, qrData, onQRScanned}; }; Loading
mobile/src/hooks/useQRScanner.ts 0 → 100644 +29 −0 Original line number Diff line number Diff line import { useEffect, useState } from "react"; import * as SecureStore from "expo-secure-store"; import { Camera, PermissionResponse } from "expo-camera"; import { BarCodeScannerResult } from "expo-barcode-scanner"; export const useQRScanner = () => { const [status, requestPermission] = Camera.useCameraPermissions(); const [hasPermission, setHasPermission] = useState<boolean>(false); const [qrData, setQRData] = useState<string | null>(null); const [scanning, setScanning] = useState<boolean>(qrData === null); const getPermission = async () => { const permission = await requestPermission(); if (permission.granted) { setHasPermission(true); } }; const onQRScanned = (data: BarCodeScannerResult) => { console.log(data.data); setQRData(data.data); setScanning(false); }; useEffect(() => { if (status?.granted) { setHasPermission(true); } }, [status]); return { hasPermission, getPermission, scanning, qrData, onQRScanned}; };