@momo-kits/camerakit 0.89.1-beta.1 → 0.89.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,12 +23,6 @@ const Camera = React.forwardRef((props: any, ref) => {
23
23
  startCamera: () => {
24
24
  CameraKitModule.startCamera(findNodeHandle(nativeRef.current ?? null));
25
25
  },
26
- startCameraWithId: (cameraId: string) => {
27
- CameraKitModule.startCameraWithId(
28
- findNodeHandle(nativeRef.current ?? null),
29
- cameraId,
30
- );
31
- },
32
26
  stopCamera: () => {
33
27
  CameraKitModule.stopCamera(findNodeHandle(nativeRef.current ?? null));
34
28
  },
@@ -38,11 +32,6 @@ const Camera = React.forwardRef((props: any, ref) => {
38
32
  findNodeHandle(nativeRef.current ?? null),
39
33
  );
40
34
  },
41
- getInfoCamera: async () => {
42
- return await CameraKitModule.getCameraInfo(
43
- findNodeHandle(nativeRef.current ?? null),
44
- );
45
- },
46
35
  }));
47
36
 
48
37
  return (
package/Camera.ios.tsx CHANGED
@@ -12,11 +12,7 @@ const Camera = React.forwardRef((props: any, ref: any) => {
12
12
  },
13
13
  startCamera: CameraKitManager.startCamera,
14
14
  stopCamera: CameraKitManager.stopCamera,
15
- startCameraWithId: CameraKitManager.startCameraWithId,
16
15
  readImageQRCode: CameraKitManager.readImageQRCode,
17
- getInfoCamera: async () => {
18
- return await CameraKitManager.getInfoCamera();
19
- },
20
16
  }));
21
17
 
22
18
  return <NativeCamera style={{minWidth: 100, minHeight: 100}} {...props} />;
package/index.tsx CHANGED
@@ -3,90 +3,102 @@ import {Platform, StyleSheet, View} from 'react-native';
3
3
  import styles from './styles';
4
4
  import CameraIOS from './Camera.ios';
5
5
  import CameraAndroid from './Camera.android';
6
- import {CameraKitProps} from './type';
6
+ import {CameraApi, CameraKitProps} from './type';
7
7
 
8
8
  const Camera = Platform.OS == 'ios' ? CameraIOS : CameraAndroid;
9
9
 
10
10
  const EventThrottleMs = 500;
11
11
 
12
- const CameraKit: React.FC<CameraKitProps> = ({
13
- onBarCodeRead,
14
- onMRZ,
15
- onImageCaptured,
16
- type = 'back',
17
- torchMode = 'off',
18
- zoomMode = 'off',
19
- zoomRate = 1.0,
20
- onOpenCamera = data => {},
21
- customFinder,
22
- style,
23
- }) => {
24
- const cameraRef = useRef<any>(null);
25
- const [lastEvent, setLastEvent] = useState<string | null>(null);
26
- const [lastEventTime, setLastEventTime] = useState<Date | null>(null);
12
+ const CameraKit = React.forwardRef(
13
+ (
14
+ {
15
+ onBarCodeRead,
16
+ onMRZ,
17
+ onImageCaptured,
18
+ type = 'back',
19
+ torchMode = 'off',
20
+ zoomMode = 'off',
21
+ zoomRate = 1.0,
22
+ onOpenCamera = data => {},
23
+ customFinder,
24
+ style,
25
+ }: CameraKitProps,
26
+ ref,
27
+ ) => {
28
+ const cameraRef = useRef<any>(null);
29
+ const [lastEvent, setLastEvent] = useState<string | null>(null);
30
+ const [lastEventTime, setLastEventTime] = useState<Date | null>(null);
27
31
 
28
- const readImageQRCode = (base64: string) => {
29
- cameraRef.current?.readImageQRCode(base64);
30
- };
32
+ React.useImperativeHandle<any, CameraApi>(ref, () => ({
33
+ capture,
34
+ startCamera,
35
+ stopCamera,
36
+ readImageQRCode,
37
+ }));
31
38
 
32
- const startCamera = () => {
33
- cameraRef.current?.startCamera();
34
- };
39
+ const readImageQRCode = (base64: string) => {
40
+ cameraRef.current?.readImageQRCode(base64);
41
+ };
35
42
 
36
- const stopCamera = () => {
37
- cameraRef.current?.stopCamera();
38
- };
43
+ const startCamera = () => {
44
+ cameraRef.current?.startCamera();
45
+ };
39
46
 
40
- const capture = async (options: any) => {
41
- try {
42
- const data = await cameraRef.current?.capture(options);
43
- onImageCaptured?.({...data, url: data.uri});
44
- } catch (e: any) {
45
- onImageCaptured?.({error: e.message});
46
- }
47
- };
47
+ const stopCamera = () => {
48
+ cameraRef.current?.stopCamera();
49
+ };
48
50
 
49
- const onBarCodeReadHandler = ({nativeEvent}: any) => {
50
- const value = JSON.stringify(nativeEvent);
51
- const outdated = lastEventTime
52
- ? new Date().getTime() - lastEventTime.getTime() > EventThrottleMs
53
- : true;
54
- if (value && value === lastEvent && !outdated) {
55
- return;
56
- }
57
- onBarCodeRead?.({data: nativeEvent?.codeStringValue});
58
- setLastEvent(value);
59
- setLastEventTime(new Date());
60
- };
51
+ const capture = async (options: any) => {
52
+ try {
53
+ const data = await cameraRef.current?.capture(options);
54
+ onImageCaptured?.({...data, url: data.uri});
55
+ } catch (e: any) {
56
+ onImageCaptured?.({error: e.message});
57
+ }
58
+ };
61
59
 
62
- const onMRZHandler = ({nativeEvent}: any) => {
63
- onMRZ?.({data: nativeEvent?.docMRZ});
64
- };
60
+ const onBarCodeReadHandler = ({nativeEvent}: any) => {
61
+ const value = JSON.stringify(nativeEvent);
62
+ const outdated = lastEventTime
63
+ ? new Date().getTime() - lastEventTime.getTime() > EventThrottleMs
64
+ : true;
65
+ if (value && value === lastEvent && !outdated) {
66
+ return;
67
+ }
68
+ onBarCodeRead?.({data: nativeEvent?.codeStringValue});
69
+ setLastEvent(value);
70
+ setLastEventTime(new Date());
71
+ };
65
72
 
66
- const onOpenCameraHandler = (native: any) => {
67
- onOpenCamera?.(native.nativeEvent);
68
- };
73
+ const onMRZHandler = ({nativeEvent}: any) => {
74
+ onMRZ?.({data: nativeEvent?.docMRZ});
75
+ };
69
76
 
70
- return (
71
- <View style={[styles.container, style]}>
72
- <Camera
73
- ref={cameraRef}
74
- style={styles.camera}
75
- cameraType={type}
76
- torchMode={torchMode}
77
- focusMode={torchMode}
78
- zoomMode={zoomMode}
79
- zoomRate={zoomRate}
80
- scanBarcode={!!onBarCodeRead}
81
- onReadCode={onBarCodeReadHandler}
82
- onMRZ={onMRZHandler}
83
- onOpenCamera={onOpenCameraHandler}
84
- />
85
- {customFinder && (
86
- <View style={StyleSheet.absoluteFill}>{customFinder()}</View>
87
- )}
88
- </View>
89
- );
90
- };
77
+ const onOpenCameraHandler = (native: any) => {
78
+ onOpenCamera?.(native.nativeEvent);
79
+ };
91
80
 
92
- export default CameraKit;
81
+ return (
82
+ <View style={[styles.container, style]}>
83
+ <Camera
84
+ ref={cameraRef}
85
+ style={styles.camera}
86
+ cameraType={type}
87
+ torchMode={torchMode}
88
+ focusMode={torchMode}
89
+ zoomMode={zoomMode}
90
+ zoomRate={zoomRate}
91
+ scanBarcode={!!onBarCodeRead}
92
+ onReadCode={onBarCodeReadHandler}
93
+ onMRZ={onMRZHandler}
94
+ onOpenCamera={onOpenCameraHandler}
95
+ />
96
+ {customFinder && (
97
+ <View style={StyleSheet.absoluteFill}>{customFinder()}</View>
98
+ )}
99
+ </View>
100
+ );
101
+ },
102
+ );
103
+
104
+ export {CameraKit};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/camerakit",
3
- "version": "0.89.1-beta.1",
3
+ "version": "0.89.1-beta.3",
4
4
  "private": false,
5
5
  "main": "index.tsx",
6
6
  "peerDependencies": {
package/type.ts CHANGED
@@ -17,9 +17,7 @@ export type CameraApi = {
17
17
  capture: (option: any) => Promise<any>;
18
18
  stopCamera: () => void;
19
19
  startCamera: () => void;
20
- startCameraWithId: (cameraId: string) => void;
21
20
  readImageQRCode: (base64: string) => void;
22
- getInfoCamera: () => Promise<any>;
23
21
  };
24
22
 
25
23
  export type CameraType = 'font' | 'back';