fix: disable barcode scanner on web platform
This commit is contained in:
parent
bbd0cfde9c
commit
2d9fbd186b
@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { View, Text, StyleSheet, Modal, TouchableOpacity, TextInput, Alert } from 'react-native';
|
||||
import { View, Text, StyleSheet, Modal, TouchableOpacity, TextInput, Alert, Platform } from 'react-native';
|
||||
import { CameraView, useCameraPermissions } from 'expo-camera';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { LinearGradient } from 'expo-linear-gradient';
|
||||
@ -111,19 +111,25 @@ export function ScanFoodModal({ visible, onClose, onAddFood }: ScanFoodModalProp
|
||||
<View style={{ width: 28 }} />
|
||||
</View>
|
||||
|
||||
<CameraView
|
||||
style={styles.camera}
|
||||
facing="back"
|
||||
onBarcodeScanned={scanned ? undefined : handleBarCodeScanned}
|
||||
barcodeScannerSettings={{
|
||||
barcodeTypes: ['ean13', 'ean8', 'upc_a', 'upc_e', 'code128', 'code39'],
|
||||
}}
|
||||
>
|
||||
<View style={styles.scanOverlay}>
|
||||
<View style={styles.scanFrame} />
|
||||
<Text style={styles.scanText}>Position barcode within frame</Text>
|
||||
{Platform.OS === 'web' ? (
|
||||
<View style={styles.webPlaceholder}>
|
||||
<Text style={styles.webText}>Barcode scanning is only available on mobile devices</Text>
|
||||
</View>
|
||||
</CameraView>
|
||||
) : (
|
||||
<CameraView
|
||||
style={styles.camera}
|
||||
facing="back"
|
||||
onBarcodeScanned={scanned ? undefined : handleBarCodeScanned}
|
||||
barcodeScannerSettings={{
|
||||
barcodeTypes: ['ean13', 'ean8', 'upc_a', 'upc_e', 'code128', 'code39'],
|
||||
}}
|
||||
>
|
||||
<View style={styles.scanOverlay}>
|
||||
<View style={styles.scanFrame} />
|
||||
<Text style={styles.scanText}>Position barcode within frame</Text>
|
||||
</View>
|
||||
</CameraView>
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<View style={styles.resultContainer}>
|
||||
@ -230,6 +236,18 @@ const styles = StyleSheet.create({
|
||||
camera: {
|
||||
flex: 1,
|
||||
},
|
||||
webPlaceholder: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
backgroundColor: '#1a1a1a',
|
||||
},
|
||||
webText: {
|
||||
color: '#999',
|
||||
fontSize: 16,
|
||||
textAlign: 'center',
|
||||
paddingHorizontal: 40,
|
||||
},
|
||||
scanOverlay: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user