@ha_tecno/live-id-sdk 2.9.2 → 2.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/lib/commonjs/index.js +0 -6
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/screens/FingerRegister/FingerRegister.js +93 -12
  4. package/lib/commonjs/screens/FingerRegister/FingerRegister.js.map +1 -1
  5. package/lib/commonjs/screens/FingerRegister/styles.js +30 -0
  6. package/lib/commonjs/screens/FingerRegister/styles.js.map +1 -1
  7. package/lib/commonjs/screens/index.js +0 -7
  8. package/lib/commonjs/screens/index.js.map +1 -1
  9. package/lib/module/index.js +2 -2
  10. package/lib/module/index.js.map +1 -1
  11. package/lib/module/screens/FingerRegister/FingerRegister.js +95 -14
  12. package/lib/module/screens/FingerRegister/FingerRegister.js.map +1 -1
  13. package/lib/module/screens/FingerRegister/styles.js +31 -1
  14. package/lib/module/screens/FingerRegister/styles.js.map +1 -1
  15. package/lib/module/screens/index.js +1 -2
  16. package/lib/module/screens/index.js.map +1 -1
  17. package/lib/typescript/src/index.d.ts +2 -2
  18. package/lib/typescript/src/index.d.ts.map +1 -1
  19. package/lib/typescript/src/screens/FingerRegister/FingerRegister.d.ts +3 -2
  20. package/lib/typescript/src/screens/FingerRegister/FingerRegister.d.ts.map +1 -1
  21. package/lib/typescript/src/screens/FingerRegister/styles.d.ts +30 -0
  22. package/lib/typescript/src/screens/FingerRegister/styles.d.ts.map +1 -1
  23. package/lib/typescript/src/screens/index.d.ts +1 -2
  24. package/lib/typescript/src/screens/index.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/index.tsx +2 -2
  27. package/src/screens/FingerRegister/FingerRegister.tsx +74 -13
  28. package/src/screens/FingerRegister/styles.ts +31 -1
  29. package/src/screens/index.ts +1 -2
  30. package/lib/commonjs/screens/MultiFingerRegister/MultiFingerRegister.js +0 -219
  31. package/lib/commonjs/screens/MultiFingerRegister/MultiFingerRegister.js.map +0 -1
  32. package/lib/commonjs/screens/MultiFingerRegister/styles.js +0 -66
  33. package/lib/commonjs/screens/MultiFingerRegister/styles.js.map +0 -1
  34. package/lib/module/screens/MultiFingerRegister/MultiFingerRegister.js +0 -210
  35. package/lib/module/screens/MultiFingerRegister/MultiFingerRegister.js.map +0 -1
  36. package/lib/module/screens/MultiFingerRegister/styles.js +0 -60
  37. package/lib/module/screens/MultiFingerRegister/styles.js.map +0 -1
  38. package/lib/typescript/src/screens/MultiFingerRegister/MultiFingerRegister.d.ts +0 -11
  39. package/lib/typescript/src/screens/MultiFingerRegister/MultiFingerRegister.d.ts.map +0 -1
  40. package/lib/typescript/src/screens/MultiFingerRegister/styles.d.ts +0 -56
  41. package/lib/typescript/src/screens/MultiFingerRegister/styles.d.ts.map +0 -1
  42. package/src/screens/MultiFingerRegister/MultiFingerRegister.tsx +0 -190
  43. package/src/screens/MultiFingerRegister/styles.ts +0 -59
@@ -1,210 +0,0 @@
1
- import React, { useCallback, useEffect, useRef } from "react";
2
- import { View } from "react-native";
3
- import { Camera, useCameraDevice, useCameraFormat, useCameraPermission } from "react-native-vision-camera";
4
- import Orientation from "react-native-orientation-locker";
5
- import { Gesture, GestureDetector, GestureHandlerRootView } from "react-native-gesture-handler";
6
- import { runOnJS } from "react-native-reanimated";
7
- import Picker from "react-native-picker-select";
8
- import { CameraConfigInfo, CaptureButton, DeviceNotFound, Gabarito, ModalMessage } from "../../components";
9
- import { styles } from "./styles";
10
- import { useDispatch, useSelector } from "../../store/modules/fingerRegister";
11
- import { useIsForeground } from "../../utils";
12
- var Finger = /*#__PURE__*/function (Finger) {
13
- Finger["LEFT_THUMB"] = "LT";
14
- Finger["LEFT_INDEX"] = "LI";
15
- Finger["LEFT_MIDDLE"] = "LM";
16
- Finger["LEFT_RING"] = "LR";
17
- Finger["LEFT_PINKY"] = "LP";
18
- Finger["RIGHT_THUMB"] = "RT";
19
- Finger["RIGHT_INDEX"] = "RI";
20
- Finger["RIGHT_MIDDLE"] = "RM";
21
- Finger["RIGHT_RING"] = "RR";
22
- Finger["RIGHT_PINKY"] = "RP";
23
- return Finger;
24
- }(Finger || {});
25
- const MultiFingerRegister = ({
26
- testID,
27
- UID,
28
- onSuccess,
29
- isFocused,
30
- mock
31
- }) => {
32
- const cameraRef = useRef(null);
33
- const isForeground = useIsForeground();
34
- const isActive = isFocused !== undefined ? isForeground && isFocused : isForeground;
35
- const {
36
- hasPermission,
37
- requestPermission
38
- } = useCameraPermission();
39
- const device = useCameraDevice("back");
40
- const state = useSelector();
41
- const dispatch = useDispatch();
42
- const containerCaptureStyled = [styles.containerCapture, {
43
- bottom: state.showButtonInfo ? 75 : 20
44
- }];
45
- const pickerStyled = {
46
- chevronDown: {
47
- display: "none"
48
- },
49
- chevronUp: {
50
- display: "none"
51
- },
52
- inputIOS: {
53
- fontSize: 16,
54
- color: "#000",
55
- textAlign: "center"
56
- },
57
- inputAndroid: {
58
- fontSize: 14,
59
- color: "#000",
60
- textAlign: "center"
61
- }
62
- };
63
- const itemsPicker = [{
64
- label: "Indicador Direito",
65
- value: Finger.RIGHT_INDEX
66
- }, {
67
- label: "Médio Direito",
68
- value: Finger.RIGHT_MIDDLE
69
- }, {
70
- label: "Anelar Direito",
71
- value: Finger.RIGHT_RING
72
- }, {
73
- label: "Mínimo Direito",
74
- value: Finger.RIGHT_PINKY
75
- }, {
76
- label: "Polegar Direito",
77
- value: Finger.RIGHT_THUMB
78
- }, {
79
- label: "Indicador Esquerdo",
80
- value: Finger.LEFT_INDEX
81
- }, {
82
- label: "Médio Esquerdo",
83
- value: Finger.LEFT_MIDDLE
84
- }, {
85
- label: "Anelar Esquerdo",
86
- value: Finger.LEFT_RING
87
- }, {
88
- label: "Mínimo Esquerdo",
89
- value: Finger.LEFT_PINKY
90
- }, {
91
- label: "Polegar Esquerdo",
92
- value: Finger.LEFT_THUMB
93
- }];
94
- useEffect(() => {
95
- Orientation.lockToPortrait();
96
- return () => {
97
- Orientation.unlockAllOrientations();
98
- };
99
- });
100
- const cameraPermission = useCallback(async () => {
101
- if (!hasPermission) {
102
- await requestPermission();
103
- }
104
- }, [hasPermission, requestPermission]);
105
- useEffect(() => {
106
- cameraPermission();
107
- dispatch.getConfig("finger");
108
- }, [cameraPermission, dispatch.getConfig]);
109
- const cameraFormat = useCameraFormat(device, [{
110
- photoResolution: {
111
- width: 1280,
112
- height: 720
113
- }
114
- }]);
115
- useEffect(() => {
116
- if (state.base64Images !== undefined && state.base64Images.length === 3) {
117
- if (!UID) {
118
- dispatch.setModal("Ocorreu um erro!", "Erro: UID não encontrado!");
119
- }
120
- dispatch.handleLoading();
121
- dispatch.sendImages(state.base64Images, UID, mock, state.currentFinger);
122
- }
123
- }, [dispatch.sendImages, dispatch.handleLoading, state.base64Images, state.base64Images.length, mock]);
124
- useEffect(() => {
125
- if (state.code === 0) {
126
- dispatch.setModal("Sucesso!", "Cadastro de digital realizado com sucesso!");
127
- onSuccess && (onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(state.code));
128
- mock === true ? setTimeout(() => dispatch.handleLoading(), 2000) : dispatch.handleLoading();
129
- dispatch.handleFinger();
130
- }
131
- if (state.code !== 0 && state.code !== null) {
132
- dispatch.setModal("Ocorreu um erro!", `Erro: ${state.message}`);
133
- dispatch.handleLoading();
134
- }
135
- dispatch.resetState();
136
- }, [state.code, state.message, dispatch.handleLoading, dispatch.resetState, dispatch.setModal, onSuccess, mock]);
137
- const takePhoto = async () => {
138
- var _cameraRef$current;
139
- const photo = await ((_cameraRef$current = cameraRef.current) === null || _cameraRef$current === void 0 ? void 0 : _cameraRef$current.takePhoto({
140
- qualityPrioritization: "balanced"
141
- }));
142
- if (photo != null) {
143
- dispatch.setImagePath(photo.path);
144
- }
145
- };
146
- const focus = useCallback(point => {
147
- const camera = cameraRef.current;
148
- if (camera != null) {
149
- camera.focus(point);
150
- }
151
- }, []);
152
- const gesture = Gesture.Tap().onBegin(({
153
- x,
154
- y
155
- }) => {
156
- runOnJS(focus)({
157
- x,
158
- y
159
- });
160
- });
161
- const handleCurrentFinger = value => {
162
- dispatch.setCurrentFinger(value);
163
- };
164
- if (device == null || hasPermission === false) return /*#__PURE__*/React.createElement(DeviceNotFound, {
165
- hasPermission: hasPermission,
166
- cameraPermission: cameraPermission
167
- });
168
- return /*#__PURE__*/React.createElement(GestureHandlerRootView, {
169
- style: styles.root
170
- }, /*#__PURE__*/React.createElement(GestureDetector, {
171
- gesture: gesture
172
- }, /*#__PURE__*/React.createElement(View, {
173
- style: styles.cameraContainer
174
- }, /*#__PURE__*/React.createElement(Camera, {
175
- ref: cameraRef,
176
- style: styles.camera,
177
- device: device,
178
- format: cameraFormat,
179
- isActive: isActive,
180
- torch: isActive ? "on" : "off",
181
- exposure: state.exposure,
182
- zoom: state.zoom,
183
- photo: true
184
- }), /*#__PURE__*/React.createElement(Gabarito, null))), /*#__PURE__*/React.createElement(View, {
185
- style: containerCaptureStyled
186
- }, /*#__PURE__*/React.createElement(CaptureButton, {
187
- onPress: takePhoto,
188
- imagesCount: state.base64Images.length,
189
- testID: testID
190
- })), state.showButtonInfo && /*#__PURE__*/React.createElement(CameraConfigInfo, {
191
- exposure: state.exposure,
192
- zoom: state.zoom
193
- }), /*#__PURE__*/React.createElement(ModalMessage, {
194
- isLoading: state.loading,
195
- modal: state.modal
196
- }), /*#__PURE__*/React.createElement(View, {
197
- style: styles.containerModal
198
- }, /*#__PURE__*/React.createElement(View, {
199
- style: styles.modal
200
- }, /*#__PURE__*/React.createElement(Picker, {
201
- style: pickerStyled,
202
- useNativeAndroidPickerStyle: false,
203
- placeholder: {},
204
- items: itemsPicker,
205
- value: state.currentFinger,
206
- onValueChange: handleCurrentFinger
207
- }))));
208
- };
209
- export default MultiFingerRegister;
210
- //# sourceMappingURL=MultiFingerRegister.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useRef","View","Camera","useCameraDevice","useCameraFormat","useCameraPermission","Orientation","Gesture","GestureDetector","GestureHandlerRootView","runOnJS","Picker","CameraConfigInfo","CaptureButton","DeviceNotFound","Gabarito","ModalMessage","styles","useDispatch","useSelector","useIsForeground","Finger","MultiFingerRegister","testID","UID","onSuccess","isFocused","mock","cameraRef","isForeground","isActive","undefined","hasPermission","requestPermission","device","state","dispatch","containerCaptureStyled","containerCapture","bottom","showButtonInfo","pickerStyled","chevronDown","display","chevronUp","inputIOS","fontSize","color","textAlign","inputAndroid","itemsPicker","label","value","RIGHT_INDEX","RIGHT_MIDDLE","RIGHT_RING","RIGHT_PINKY","RIGHT_THUMB","LEFT_INDEX","LEFT_MIDDLE","LEFT_RING","LEFT_PINKY","LEFT_THUMB","lockToPortrait","unlockAllOrientations","cameraPermission","getConfig","cameraFormat","photoResolution","width","height","base64Images","length","setModal","handleLoading","sendImages","currentFinger","code","setTimeout","handleFinger","message","resetState","takePhoto","_cameraRef$current","photo","current","qualityPrioritization","setImagePath","path","focus","point","camera","gesture","Tap","onBegin","x","y","handleCurrentFinger","setCurrentFinger","createElement","style","root","cameraContainer","ref","format","torch","exposure","zoom","onPress","imagesCount","isLoading","loading","modal","containerModal","useNativeAndroidPickerStyle","placeholder","items","onValueChange"],"sourceRoot":"../../../../src","sources":["screens/MultiFingerRegister/MultiFingerRegister.tsx"],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { StyleSheet, Dimensions, Platform } from "react-native";
2
- const {
3
- height
4
- } = Dimensions.get("window");
5
- export const styles = StyleSheet.create({
6
- container: {
7
- flex: 1
8
- },
9
- root: {
10
- flex: 1
11
- },
12
- cameraContainer: {
13
- flex: 1,
14
- justifyContent: "center"
15
- },
16
- camera: {
17
- flex: 1,
18
- paddingBottom: height * 0.2
19
- },
20
- containerCapture: {
21
- position: "absolute",
22
- width: "100%",
23
- alignItems: "center"
24
- },
25
- cameraConfigs: {
26
- alignItems: "center"
27
- },
28
- containerModalIcon: {
29
- position: "absolute",
30
- top: 10,
31
- right: 10,
32
- zIndex: 9999
33
- },
34
- containerModal: {
35
- position: "absolute",
36
- justifyContent: "flex-start",
37
- alignSelf: "center",
38
- width: "100%"
39
- },
40
- modal: {
41
- margin: 20,
42
- backgroundColor: "white",
43
- borderRadius: 20,
44
- padding: Platform.OS === "ios" ? 35 : 20,
45
- shadowColor: "#000",
46
- shadowOffset: {
47
- width: 0,
48
- height: 2
49
- },
50
- shadowOpacity: 0.25,
51
- shadowRadius: 4,
52
- elevation: 5
53
- },
54
- iconClose: {
55
- position: "absolute",
56
- alignSelf: "flex-end",
57
- padding: 8
58
- }
59
- });
60
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["StyleSheet","Dimensions","Platform","height","get","styles","create","container","flex","root","cameraContainer","justifyContent","camera","paddingBottom","containerCapture","position","width","alignItems","cameraConfigs","containerModalIcon","top","right","zIndex","containerModal","alignSelf","modal","margin","backgroundColor","borderRadius","padding","OS","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","iconClose"],"sourceRoot":"../../../../src","sources":["screens/MultiFingerRegister/styles.ts"],"mappings":"AAAA,SAASA,UAAU,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AAE/D,MAAM;EAAEC;AAAO,CAAC,GAAGF,UAAU,CAACG,GAAG,CAAC,QAAQ,CAAC;AAE3C,OAAO,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EACtCC,SAAS,EAAE;IACTC,IAAI,EAAE;EACR,CAAC;EACDC,IAAI,EAAE;IACJD,IAAI,EAAE;EACR,CAAC;EACDE,eAAe,EAAE;IACfF,IAAI,EAAE,CAAC;IACPG,cAAc,EAAE;EAClB,CAAC;EACDC,MAAM,EAAE;IACNJ,IAAI,EAAE,CAAC;IACPK,aAAa,EAAEV,MAAM,GAAG;EAC1B,CAAC;EACDW,gBAAgB,EAAE;IAChBC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,MAAM;IACbC,UAAU,EAAE;EACd,CAAC;EACDC,aAAa,EAAE;IACbD,UAAU,EAAE;EACd,CAAC;EACDE,kBAAkB,EAAE;IAClBJ,QAAQ,EAAE,UAAU;IACpBK,GAAG,EAAE,EAAE;IACPC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdR,QAAQ,EAAE,UAAU;IACpBJ,cAAc,EAAE,YAAY;IAC5Ba,SAAS,EAAE,QAAQ;IACnBR,KAAK,EAAE;EACT,CAAC;EACDS,KAAK,EAAE;IACLC,MAAM,EAAE,EAAE;IACVC,eAAe,EAAE,OAAO;IACxBC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE3B,QAAQ,CAAC4B,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,EAAE;IACxCC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MACZhB,KAAK,EAAE,CAAC;MACRb,MAAM,EAAE;IACV,CAAC;IACD8B,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDC,SAAS,EAAE;IACTrB,QAAQ,EAAE,UAAU;IACpBS,SAAS,EAAE,UAAU;IACrBK,OAAO,EAAE;EACX;AACF,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- /// <reference types="react" />
2
- type Props = {
3
- UID: string;
4
- onSuccess: (code: number) => void;
5
- isFocused?: boolean;
6
- mock?: boolean;
7
- testID?: string;
8
- };
9
- declare const MultiFingerRegister: ({ testID, UID, onSuccess, isFocused, mock }: Props) => JSX.Element;
10
- export default MultiFingerRegister;
11
- //# sourceMappingURL=MultiFingerRegister.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultiFingerRegister.d.ts","sourceRoot":"","sources":["../../../../../src/screens/MultiFingerRegister/MultiFingerRegister.tsx"],"names":[],"mappings":";AA0BA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,mBAAmB,gDAAiD,KAAK,gBAyJ9E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,56 +0,0 @@
1
- export declare const styles: {
2
- container: {
3
- flex: number;
4
- };
5
- root: {
6
- flex: number;
7
- };
8
- cameraContainer: {
9
- flex: number;
10
- justifyContent: "center";
11
- };
12
- camera: {
13
- flex: number;
14
- paddingBottom: number;
15
- };
16
- containerCapture: {
17
- position: "absolute";
18
- width: "100%";
19
- alignItems: "center";
20
- };
21
- cameraConfigs: {
22
- alignItems: "center";
23
- };
24
- containerModalIcon: {
25
- position: "absolute";
26
- top: number;
27
- right: number;
28
- zIndex: number;
29
- };
30
- containerModal: {
31
- position: "absolute";
32
- justifyContent: "flex-start";
33
- alignSelf: "center";
34
- width: "100%";
35
- };
36
- modal: {
37
- margin: number;
38
- backgroundColor: string;
39
- borderRadius: number;
40
- padding: number;
41
- shadowColor: string;
42
- shadowOffset: {
43
- width: number;
44
- height: number;
45
- };
46
- shadowOpacity: number;
47
- shadowRadius: number;
48
- elevation: number;
49
- };
50
- iconClose: {
51
- position: "absolute";
52
- alignSelf: "flex-end";
53
- padding: number;
54
- };
55
- };
56
- //# sourceMappingURL=styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/screens/MultiFingerRegister/styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDjB,CAAC"}
@@ -1,190 +0,0 @@
1
- import React, { useCallback, useEffect, useRef } from "react";
2
- import { View } from "react-native";
3
- import { Camera, Point, useCameraDevice, useCameraFormat, useCameraPermission } from "react-native-vision-camera";
4
- import Orientation from "react-native-orientation-locker";
5
- import { Gesture, GestureDetector, GestureHandlerRootView } from "react-native-gesture-handler";
6
- import { runOnJS } from "react-native-reanimated";
7
- import Picker, { PickerStyle } from "react-native-picker-select";
8
-
9
- import { CameraConfigInfo, CaptureButton, DeviceNotFound, Gabarito, ModalMessage } from "../../components";
10
- import { styles } from "./styles";
11
- import { useDispatch, useSelector } from "../../store/modules/fingerRegister";
12
- import { useIsForeground } from "../../utils";
13
-
14
- enum Finger {
15
- LEFT_THUMB = "LT",
16
- LEFT_INDEX = "LI",
17
- LEFT_MIDDLE = "LM",
18
- LEFT_RING = "LR",
19
- LEFT_PINKY = "LP",
20
- RIGHT_THUMB = "RT",
21
- RIGHT_INDEX = "RI",
22
- RIGHT_MIDDLE = "RM",
23
- RIGHT_RING = "RR",
24
- RIGHT_PINKY = "RP"
25
- }
26
-
27
- type Props = {
28
- UID: string;
29
- onSuccess: (code: number) => void;
30
- isFocused?: boolean;
31
- mock?: boolean;
32
- testID?: string;
33
- };
34
-
35
- const MultiFingerRegister = ({ testID, UID, onSuccess, isFocused, mock }: Props) => {
36
- const cameraRef = useRef<Camera>(null);
37
- const isForeground = useIsForeground();
38
- const isActive = isFocused !== undefined ? isForeground && isFocused : isForeground;
39
- const { hasPermission, requestPermission } = useCameraPermission();
40
- const device = useCameraDevice("back");
41
- const state = useSelector();
42
- const dispatch = useDispatch();
43
-
44
- const containerCaptureStyled = [styles.containerCapture, { bottom: state.showButtonInfo ? 75 : 20 }];
45
- const pickerStyled: PickerStyle = {
46
- chevronDown: { display: "none" },
47
- chevronUp: { display: "none" },
48
- inputIOS: {
49
- fontSize: 16,
50
- color: "#000",
51
- textAlign: "center"
52
- },
53
- inputAndroid: {
54
- fontSize: 14,
55
- color: "#000",
56
- textAlign: "center"
57
- }
58
- };
59
-
60
- const itemsPicker = [
61
- { label: "Indicador Direito", value: Finger.RIGHT_INDEX },
62
- { label: "Médio Direito", value: Finger.RIGHT_MIDDLE },
63
- { label: "Anelar Direito", value: Finger.RIGHT_RING },
64
- { label: "Mínimo Direito", value: Finger.RIGHT_PINKY },
65
- { label: "Polegar Direito", value: Finger.RIGHT_THUMB },
66
- { label: "Indicador Esquerdo", value: Finger.LEFT_INDEX },
67
- { label: "Médio Esquerdo", value: Finger.LEFT_MIDDLE },
68
- { label: "Anelar Esquerdo", value: Finger.LEFT_RING },
69
- { label: "Mínimo Esquerdo", value: Finger.LEFT_PINKY },
70
- { label: "Polegar Esquerdo", value: Finger.LEFT_THUMB }
71
- ];
72
-
73
- useEffect(() => {
74
- Orientation.lockToPortrait();
75
- return () => {
76
- Orientation.unlockAllOrientations();
77
- };
78
- });
79
-
80
- const cameraPermission = useCallback(async () => {
81
- if (!hasPermission) {
82
- await requestPermission();
83
- }
84
- }, [hasPermission, requestPermission]);
85
-
86
- useEffect(() => {
87
- cameraPermission();
88
- dispatch.getConfig("finger");
89
- }, [cameraPermission, dispatch.getConfig]);
90
-
91
- const cameraFormat = useCameraFormat(device, [
92
- {
93
- photoResolution: {
94
- width: 1280,
95
- height: 720
96
- }
97
- }
98
- ]);
99
-
100
- useEffect(() => {
101
- if (state.base64Images !== undefined && state.base64Images.length === 3) {
102
- if (!UID) {
103
- dispatch.setModal("Ocorreu um erro!", "Erro: UID não encontrado!");
104
- }
105
- dispatch.handleLoading();
106
- dispatch.sendImages(state.base64Images, UID, mock, state.currentFinger);
107
- }
108
- }, [dispatch.sendImages, dispatch.handleLoading, state.base64Images, state.base64Images.length, mock]);
109
-
110
- useEffect(() => {
111
- if (state.code === 0) {
112
- dispatch.setModal("Sucesso!", "Cadastro de digital realizado com sucesso!");
113
- onSuccess && onSuccess?.(state.code);
114
- mock === true ? setTimeout(() => dispatch.handleLoading(), 2000) : dispatch.handleLoading();
115
- dispatch.handleFinger();
116
- }
117
- if (state.code !== 0 && state.code !== null) {
118
- dispatch.setModal("Ocorreu um erro!", `Erro: ${state.message}`);
119
- dispatch.handleLoading();
120
- }
121
- dispatch.resetState();
122
- }, [state.code, state.message, dispatch.handleLoading, dispatch.resetState, dispatch.setModal, onSuccess, mock]);
123
-
124
- const takePhoto = async () => {
125
- const photo = await cameraRef.current?.takePhoto({
126
- qualityPrioritization: "balanced"
127
- });
128
- if (photo != null) {
129
- dispatch.setImagePath(photo.path);
130
- }
131
- };
132
-
133
- const focus = useCallback((point: Point) => {
134
- const camera = cameraRef.current;
135
- if (camera != null) {
136
- camera.focus(point);
137
- }
138
- }, []);
139
-
140
- const gesture = Gesture.Tap().onBegin(({ x, y }) => {
141
- runOnJS(focus)({ x, y });
142
- });
143
-
144
- const handleCurrentFinger = (value: string) => {
145
- dispatch.setCurrentFinger(value as Finger);
146
- };
147
-
148
- if (device == null || hasPermission === false)
149
- return <DeviceNotFound hasPermission={hasPermission} cameraPermission={cameraPermission} />;
150
-
151
- return (
152
- <GestureHandlerRootView style={styles.root}>
153
- <GestureDetector gesture={gesture}>
154
- <View style={styles.cameraContainer}>
155
- <Camera
156
- ref={cameraRef}
157
- style={styles.camera}
158
- device={device}
159
- format={cameraFormat}
160
- isActive={isActive}
161
- torch={isActive ? "on" : "off"}
162
- exposure={state.exposure}
163
- zoom={state.zoom}
164
- photo
165
- />
166
- <Gabarito />
167
- </View>
168
- </GestureDetector>
169
- <View style={containerCaptureStyled}>
170
- <CaptureButton onPress={takePhoto} imagesCount={state.base64Images.length} testID={testID} />
171
- </View>
172
- {state.showButtonInfo && <CameraConfigInfo exposure={state.exposure} zoom={state.zoom} />}
173
- <ModalMessage isLoading={state.loading} modal={state.modal} />
174
- <View style={styles.containerModal}>
175
- <View style={styles.modal}>
176
- <Picker
177
- style={pickerStyled}
178
- useNativeAndroidPickerStyle={false}
179
- placeholder={{}}
180
- items={itemsPicker}
181
- value={state.currentFinger}
182
- onValueChange={handleCurrentFinger}
183
- />
184
- </View>
185
- </View>
186
- </GestureHandlerRootView>
187
- );
188
- };
189
-
190
- export default MultiFingerRegister;
@@ -1,59 +0,0 @@
1
- import { StyleSheet, Dimensions, Platform } from "react-native";
2
-
3
- const { height } = Dimensions.get("window");
4
-
5
- export const styles = StyleSheet.create({
6
- container: {
7
- flex: 1
8
- },
9
- root: {
10
- flex: 1
11
- },
12
- cameraContainer: {
13
- flex: 1,
14
- justifyContent: "center"
15
- },
16
- camera: {
17
- flex: 1,
18
- paddingBottom: height * 0.2
19
- },
20
- containerCapture: {
21
- position: "absolute",
22
- width: "100%",
23
- alignItems: "center"
24
- },
25
- cameraConfigs: {
26
- alignItems: "center"
27
- },
28
- containerModalIcon: {
29
- position: "absolute",
30
- top: 10,
31
- right: 10,
32
- zIndex: 9999
33
- },
34
- containerModal: {
35
- position: "absolute",
36
- justifyContent: "flex-start",
37
- alignSelf: "center",
38
- width: "100%"
39
- },
40
- modal: {
41
- margin: 20,
42
- backgroundColor: "white",
43
- borderRadius: 20,
44
- padding: Platform.OS === "ios" ? 35 : 20,
45
- shadowColor: "#000",
46
- shadowOffset: {
47
- width: 0,
48
- height: 2
49
- },
50
- shadowOpacity: 0.25,
51
- shadowRadius: 4,
52
- elevation: 5
53
- },
54
- iconClose: {
55
- position: "absolute",
56
- alignSelf: "flex-end",
57
- padding: 8
58
- }
59
- });