Skip to content

Commit 8822297

Browse files
committed
example: use a function to convert and set the text results
1 parent 5f796cc commit 8822297

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

example/src/components/BarcodeScanner.tsx

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,16 @@ interface props {
1111
const BarcodeScanner: React.FC<props> = (props: props) => {
1212
const [hasPermission, setHasPermission] = React.useState(false);
1313
const [isActive, setIsActive] = React.useState(false);
14-
const [results, setResults] = React.useState<Record<string,TextResult>>();
15-
const setResultsJS = Worklets.createRunInJsFn(setResults);
14+
const [results, setResults] = React.useState([] as TextResult[]);
15+
const convertAndSetResults = (records:Record<string,TextResult>) => {
16+
let results:TextResult[] = [];
17+
for (let index = 0; index < Object.keys(records).length; index++) {
18+
const result = records[Object.keys(records)[index]];
19+
results.push(result);
20+
}
21+
setResults(results);
22+
}
23+
const convertAndSetResultsJS = Worklets.createRunInJsFn(convertAndSetResults);
1624
const device = useCameraDevice("back");
1725
const cameraFormat = useCameraFormat(device, [
1826
{ videoResolution: { width: 1280, height: 720 } },
@@ -30,21 +38,11 @@ const BarcodeScanner: React.FC<props> = (props: props) => {
3038
console.log("decode");
3139
console.log(results);
3240
if (results) {
33-
setResultsJS(results);
41+
convertAndSetResultsJS(results);
3442
}
3543
})
3644
}, [])
3745

38-
const convertRecordsToArray = (records:Record<string,TextResult>) =>{
39-
let results:TextResult[] = [];
40-
for (let index = 0; index < Object.keys(records).length; index++) {
41-
const result = records[Object.keys(records)[index]];
42-
results.push(result);
43-
}
44-
console.log(results);
45-
return results;
46-
}
47-
4846
React.useEffect(() => {
4947
(async () => {
5048
const status = await Camera.requestCameraPermission();
@@ -55,13 +53,13 @@ const BarcodeScanner: React.FC<props> = (props: props) => {
5553

5654
React.useEffect(() => {
5755
if (props.onScanned && results) {
58-
props.onScanned(convertRecordsToArray(results));
56+
props.onScanned(results);
5957
}
6058
}, [results]);
6159

6260
const renderBarcodeResults = ()=> {
6361
if (results) {
64-
const listItems = convertRecordsToArray(results).map((barcode,idx) =>
62+
const listItems = results.map((barcode,idx) =>
6563
<Text key={"barcode"+idx} style={styles.barcodeText}>
6664
{barcode.barcodeFormat +": "+ barcode.barcodeText}
6765
</Text>

0 commit comments

Comments
 (0)