import { Ionicons } from '@expo/vector-icons' import { CameraView, useCameraPermissions } from 'expo-camera' import { Stack, useRouter } from 'expo-router' import { useCallback, useEffect, useRef } from 'react' import { Pressable, View } from 'react-native' import { Block } from '@/@share/components' import { userStore } from '@/stores/userStore' export default function ScanPage() { const router = useRouter() const scannedRef = useRef(false) const [permission] = useCameraPermissions() useEffect(() => { userStore.setScannedQR('') }, []) const handleBarcodeScanned = useCallback( ({ data }: { data: string }) => { if (scannedRef.current) return scannedRef.current = true userStore.setScannedQR(data) setTimeout(() => router.back(), 300) }, [router], ) if (!permission?.granted) { return ( ) } return ( ( router.back()} hitSlop={8}> ), }} /> {/* 扫描框 */} ) }