mirror of
https://github.com/selfxyz/self.git
synced 2026-04-27 03:01:15 -04:00
add camera reader
This commit is contained in:
32
app/App.tsx
32
app/App.tsx
@@ -109,6 +109,37 @@ function App(): JSX.Element {
|
||||
gender: false,
|
||||
expiry_date: false,
|
||||
});
|
||||
|
||||
const startCameraScan = () => {
|
||||
NativeModules.CameraActivityModule.startCameraActivity()
|
||||
.then((mrzInfo) => {
|
||||
console.log('MRZ Info:', mrzInfo);
|
||||
const lines = mrzInfo.split('\n');
|
||||
if (lines.length >= 2) {
|
||||
const secondLine = lines[1];
|
||||
console.log('Second Line:', secondLine);
|
||||
const passportNumber = secondLine.substring(0, 9).replace(/</g, '').trim(); // Passport number (first 9 characters, remove filler characters)
|
||||
const dateOfBirth = secondLine.substring(13, 19); // Date of birth (YYMMDD) at positions 14-19
|
||||
const dateOfExpiry = secondLine.substring(21, 27); // Date of expiry (YYMMDD) at positions 22-27
|
||||
console.log('passportNumber:', passportNumber);
|
||||
console.log('dateOfBirth:', dateOfBirth);
|
||||
console.log('dateOfExpiry:', dateOfExpiry);
|
||||
|
||||
setPassportNumber(passportNumber);
|
||||
setDateOfBirth(dateOfBirth);
|
||||
setDateOfExpiry(dateOfExpiry);
|
||||
|
||||
|
||||
} else {
|
||||
console.error('Invalid MRZ format');
|
||||
}
|
||||
// Handle the MRZ Info as needed
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Camera Activity Error:', error);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const handleDisclosureChange = (field: keyof typeof disclosure) => {
|
||||
setDisclosure(
|
||||
@@ -388,6 +419,7 @@ function App(): JSX.Element {
|
||||
dateOfExpiry={dateOfExpiry}
|
||||
setDateOfExpiry={setDateOfExpiry}
|
||||
onScanPress={scan}
|
||||
onStartCameraScan={startCameraScan}
|
||||
/>
|
||||
) : null}
|
||||
{step === 'scanning' ? (
|
||||
|
||||
@@ -15,9 +15,16 @@ const EnterDetailsScreen = ({
|
||||
setDateOfBirth,
|
||||
dateOfExpiry,
|
||||
setDateOfExpiry,
|
||||
onScanPress
|
||||
onScanPress,
|
||||
onStartCameraScan
|
||||
}) => {
|
||||
const [selectedToggle, setSelectedToggle] = useState('write');
|
||||
const handleCameraPress = () => {
|
||||
if (selectedToggle === 'write') {
|
||||
onStartCameraScan(); // Call the function passed as prop
|
||||
setSelectedToggle('write');
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<View style={styles.sectionContainer}>
|
||||
@@ -33,12 +40,12 @@ const EnterDetailsScreen = ({
|
||||
<ToggleGroup.Item value="write">
|
||||
<AlignCenter />
|
||||
</ToggleGroup.Item>
|
||||
<ToggleGroup.Item value="camera">
|
||||
<ToggleGroup.Item value="camera" onPress={handleCameraPress}>
|
||||
<Camera />
|
||||
</ToggleGroup.Item>
|
||||
</ToggleGroup>
|
||||
|
||||
{selectedToggle === 'write' ? (
|
||||
{true ? (
|
||||
<View style={styles.inputContainer}>
|
||||
<CustomTextInput
|
||||
value={passportNumber}
|
||||
|
||||
Reference in New Issue
Block a user