@ha_tecno/live-id-sdk 2.9.2 → 2.10.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/commonjs/index.js +0 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/screens/FingerRegister/FingerRegister.js +95 -12
- package/lib/commonjs/screens/FingerRegister/FingerRegister.js.map +1 -1
- package/lib/commonjs/screens/FingerRegister/styles.js +30 -0
- package/lib/commonjs/screens/FingerRegister/styles.js.map +1 -1
- package/lib/commonjs/screens/index.js +0 -7
- package/lib/commonjs/screens/index.js.map +1 -1
- package/lib/commonjs/utils/index.js +8 -2
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/utils.js +6 -2
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/FingerRegister/FingerRegister.js +98 -15
- package/lib/module/screens/FingerRegister/FingerRegister.js.map +1 -1
- package/lib/module/screens/FingerRegister/styles.js +31 -1
- package/lib/module/screens/FingerRegister/styles.js.map +1 -1
- package/lib/module/screens/index.js +1 -2
- package/lib/module/screens/index.js.map +1 -1
- package/lib/module/utils/index.js +2 -2
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/utils.js +4 -1
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/FingerRegister/FingerRegister.d.ts +4 -2
- package/lib/typescript/src/screens/FingerRegister/FingerRegister.d.ts.map +1 -1
- package/lib/typescript/src/screens/FingerRegister/styles.d.ts +30 -0
- package/lib/typescript/src/screens/FingerRegister/styles.d.ts.map +1 -1
- package/lib/typescript/src/screens/index.d.ts +1 -2
- package/lib/typescript/src/screens/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/index.d.ts +2 -2
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/utils.d.ts +9 -1
- package/lib/typescript/src/utils/utils.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/index.tsx +2 -2
- package/src/screens/FingerRegister/FingerRegister.tsx +78 -14
- package/src/screens/FingerRegister/styles.ts +31 -1
- package/src/screens/index.ts +1 -2
- package/src/utils/index.ts +2 -2
- package/src/utils/utils.ts +10 -1
- package/lib/commonjs/screens/MultiFingerRegister/MultiFingerRegister.js +0 -219
- package/lib/commonjs/screens/MultiFingerRegister/MultiFingerRegister.js.map +0 -1
- package/lib/commonjs/screens/MultiFingerRegister/styles.js +0 -66
- package/lib/commonjs/screens/MultiFingerRegister/styles.js.map +0 -1
- package/lib/module/screens/MultiFingerRegister/MultiFingerRegister.js +0 -210
- package/lib/module/screens/MultiFingerRegister/MultiFingerRegister.js.map +0 -1
- package/lib/module/screens/MultiFingerRegister/styles.js +0 -60
- package/lib/module/screens/MultiFingerRegister/styles.js.map +0 -1
- package/lib/typescript/src/screens/MultiFingerRegister/MultiFingerRegister.d.ts +0 -11
- package/lib/typescript/src/screens/MultiFingerRegister/MultiFingerRegister.d.ts.map +0 -1
- package/lib/typescript/src/screens/MultiFingerRegister/styles.d.ts +0 -56
- package/lib/typescript/src/screens/MultiFingerRegister/styles.d.ts.map +0 -1
- package/src/screens/MultiFingerRegister/MultiFingerRegister.tsx +0 -190
- package/src/screens/MultiFingerRegister/styles.ts +0 -59
@@ -1,4 +1,4 @@
|
|
1
|
-
import { StyleSheet, Dimensions } from "react-native";
|
1
|
+
import { StyleSheet, Dimensions, Platform } from "react-native";
|
2
2
|
const {
|
3
3
|
height
|
4
4
|
} = Dimensions.get("window");
|
@@ -24,6 +24,36 @@ export const styles = StyleSheet.create({
|
|
24
24
|
},
|
25
25
|
cameraConfigs: {
|
26
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
|
+
},
|
39
|
+
modal: {
|
40
|
+
margin: 20,
|
41
|
+
backgroundColor: "white",
|
42
|
+
borderRadius: 20,
|
43
|
+
padding: Platform.OS === "ios" ? 35 : 20,
|
44
|
+
shadowColor: "#000",
|
45
|
+
shadowOffset: {
|
46
|
+
width: 0,
|
47
|
+
height: 2
|
48
|
+
},
|
49
|
+
shadowOpacity: 0.25,
|
50
|
+
shadowRadius: 4,
|
51
|
+
elevation: 5
|
52
|
+
},
|
53
|
+
iconClose: {
|
54
|
+
position: "absolute",
|
55
|
+
alignSelf: "flex-end",
|
56
|
+
padding: 8
|
27
57
|
}
|
28
58
|
});
|
29
59
|
//# sourceMappingURL=styles.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["StyleSheet","Dimensions","height","get","styles","create","container","flex","root","cameraContainer","justifyContent","camera","paddingBottom","containerCapture","position","width","alignItems","cameraConfigs"],"sourceRoot":"../../../../src","sources":["screens/FingerRegister/styles.ts"],"mappings":"AAAA,SAASA,UAAU,EAAEC,UAAU,QAAQ,cAAc;
|
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/FingerRegister/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;EACb,CAAC;EACDC,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,6 +1,5 @@
|
|
1
1
|
import FingerRegister from "./FingerRegister/FingerRegister";
|
2
2
|
import LifeCertificate from "./LifeCertificate/LifeCertificate";
|
3
3
|
import FingerAuth from "./FingerAuth/FingerAuth";
|
4
|
-
|
5
|
-
export { FingerRegister, LifeCertificate, FingerAuth, MultiFingerRegister };
|
4
|
+
export { FingerRegister, LifeCertificate, FingerAuth };
|
6
5
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["FingerRegister","LifeCertificate","FingerAuth"
|
1
|
+
{"version":3,"names":["FingerRegister","LifeCertificate","FingerAuth"],"sourceRoot":"../../../src","sources":["screens/index.ts"],"mappings":"AAAA,OAAOA,cAAc,MAAM,iCAAiC;AAC5D,OAAOC,eAAe,MAAM,mCAAmC;AAC/D,OAAOC,UAAU,MAAM,yBAAyB;AAEhD,SAASF,cAAc,EAAEC,eAAe,EAAEC,UAAU"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import getConfigCamera from "./getConfigCamera";
|
2
|
-
import randomHeartRate from "./utils";
|
2
|
+
import { randomHeartRate, filteredFingers } from "./utils";
|
3
3
|
import { useIsForeground } from "./hooks/useIsForeground";
|
4
|
-
export { getConfigCamera, useIsForeground, randomHeartRate };
|
4
|
+
export { getConfigCamera, useIsForeground, randomHeartRate, filteredFingers };
|
5
5
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getConfigCamera","randomHeartRate","useIsForeground"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA,OAAOA,eAAe,MAAM,mBAAmB;AAC/C,
|
1
|
+
{"version":3,"names":["getConfigCamera","randomHeartRate","filteredFingers","useIsForeground"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA,OAAOA,eAAe,MAAM,mBAAmB;AAC/C,SAASC,eAAe,EAAEC,eAAe,QAAQ,SAAS;AAC1D,SAASC,eAAe,QAAQ,yBAAyB;AAEzD,SAASH,eAAe,EAAEG,eAAe,EAAEF,eAAe,EAAEC,eAAe"}
|
@@ -1,5 +1,8 @@
|
|
1
1
|
const randomHeartRate = () => {
|
2
2
|
return Math.floor(Math.random() * (90 - 75 + 1) + 75);
|
3
3
|
};
|
4
|
-
|
4
|
+
const filteredFingers = (registeredFingers, items) => {
|
5
|
+
return items.filter(item => !registeredFingers.includes(item.value));
|
6
|
+
};
|
7
|
+
export { randomHeartRate, filteredFingers };
|
5
8
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["randomHeartRate","Math","floor","random"],"sourceRoot":"../../../src","sources":["utils/utils.ts"],"mappings":"
|
1
|
+
{"version":3,"names":["randomHeartRate","Math","floor","random","filteredFingers","registeredFingers","items","filter","item","includes","value"],"sourceRoot":"../../../src","sources":["utils/utils.ts"],"mappings":"AAEA,MAAMA,eAAe,GAAGA,CAAA,KAAc;EACpC,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AAED,MAAMC,eAAe,GAAGA,CACtBC,iBAA2B,EAC3BC,KAAyC,KACF;EACvC,OAAOA,KAAK,CAACC,MAAM,CAAEC,IAAI,IAAK,CAACH,iBAAiB,CAACI,QAAQ,CAACD,IAAI,CAACE,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,SAASV,eAAe,EAAEI,eAAe"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { LifeCertificate, FingerRegister, FingerAuth
|
2
|
-
export { LifeCertificate, FingerRegister, FingerAuth
|
1
|
+
import { LifeCertificate, FingerRegister, FingerAuth } from "./screens";
|
2
|
+
export { LifeCertificate, FingerRegister, FingerAuth };
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC"}
|
@@ -5,7 +5,9 @@ type Props = {
|
|
5
5
|
isFocused?: boolean;
|
6
6
|
mock?: boolean;
|
7
7
|
testID?: string;
|
8
|
+
registerUser?: boolean;
|
9
|
+
registeredFingers?: string[];
|
8
10
|
};
|
9
|
-
declare const
|
10
|
-
export default
|
11
|
+
declare const MultiFingerRegister: ({ testID, UID, onSuccess, isFocused, mock, registerUser, registeredFingers }: Props) => JSX.Element;
|
12
|
+
export default MultiFingerRegister;
|
11
13
|
//# sourceMappingURL=FingerRegister.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FingerRegister.d.ts","sourceRoot":"","sources":["../../../../../src/screens/FingerRegister/FingerRegister.tsx"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"FingerRegister.d.ts","sourceRoot":"","sources":["../../../../../src/screens/FingerRegister/FingerRegister.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;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,QAAA,MAAM,mBAAmB,iFAAkF,KAAK,gBA4J/G,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
@@ -21,5 +21,35 @@ export declare const styles: {
|
|
21
21
|
cameraConfigs: {
|
22
22
|
alignItems: "center";
|
23
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
|
+
};
|
35
|
+
modal: {
|
36
|
+
margin: number;
|
37
|
+
backgroundColor: string;
|
38
|
+
borderRadius: number;
|
39
|
+
padding: number;
|
40
|
+
shadowColor: string;
|
41
|
+
shadowOffset: {
|
42
|
+
width: number;
|
43
|
+
height: number;
|
44
|
+
};
|
45
|
+
shadowOpacity: number;
|
46
|
+
shadowRadius: number;
|
47
|
+
elevation: number;
|
48
|
+
};
|
49
|
+
iconClose: {
|
50
|
+
position: "absolute";
|
51
|
+
alignSelf: "flex-end";
|
52
|
+
padding: number;
|
53
|
+
};
|
24
54
|
};
|
25
55
|
//# sourceMappingURL=styles.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/screens/FingerRegister/styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/screens/FingerRegister/styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDjB,CAAC"}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import FingerRegister from "./FingerRegister/FingerRegister";
|
2
2
|
import LifeCertificate from "./LifeCertificate/LifeCertificate";
|
3
3
|
import FingerAuth from "./FingerAuth/FingerAuth";
|
4
|
-
|
5
|
-
export { FingerRegister, LifeCertificate, FingerAuth, MultiFingerRegister };
|
4
|
+
export { FingerRegister, LifeCertificate, FingerAuth };
|
6
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,UAAU,MAAM,yBAAyB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import getConfigCamera from "./getConfigCamera";
|
2
|
-
import randomHeartRate from "./utils";
|
2
|
+
import { randomHeartRate, filteredFingers } from "./utils";
|
3
3
|
import { useIsForeground } from "./hooks/useIsForeground";
|
4
|
-
export { getConfigCamera, useIsForeground, randomHeartRate };
|
4
|
+
export { getConfigCamera, useIsForeground, randomHeartRate, filteredFingers };
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
|
@@ -1,3 +1,11 @@
|
|
1
|
+
import { Finger } from "../services/types";
|
1
2
|
declare const randomHeartRate: () => number;
|
2
|
-
|
3
|
+
declare const filteredFingers: (registeredFingers: string[], items: {
|
4
|
+
label: string;
|
5
|
+
value: Finger;
|
6
|
+
}[]) => {
|
7
|
+
label: string;
|
8
|
+
value: Finger;
|
9
|
+
}[];
|
10
|
+
export { randomHeartRate, filteredFingers };
|
3
11
|
//# sourceMappingURL=utils.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,QAAO,MAE3B,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,QAAA,MAAM,eAAe,QAAO,MAE3B,CAAC;AAEF,QAAA,MAAM,eAAe,sBACA,MAAM,EAAE,SACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,KACxC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAElC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ha_tecno/live-id-sdk",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.10.0",
|
4
4
|
"description": "React Native SDK for Live ID",
|
5
5
|
"main": "lib/commonjs/index",
|
6
6
|
"module": "lib/module/index",
|
@@ -32,7 +32,8 @@
|
|
32
32
|
"lint": "eslint . --ext .ts,.tsx",
|
33
33
|
"prepare": "husky",
|
34
34
|
"bob": "bob build",
|
35
|
-
"release": "release-it"
|
35
|
+
"release": "release-it",
|
36
|
+
"test": "jest"
|
36
37
|
},
|
37
38
|
"keywords": [
|
38
39
|
"react-native",
|
package/src/index.tsx
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
import { LifeCertificate, FingerRegister, FingerAuth
|
1
|
+
import { LifeCertificate, FingerRegister, FingerAuth } from "./screens";
|
2
2
|
|
3
|
-
export { LifeCertificate, FingerRegister, FingerAuth
|
3
|
+
export { LifeCertificate, FingerRegister, FingerAuth };
|
@@ -1,14 +1,28 @@
|
|
1
1
|
import React, { useCallback, useEffect, useRef } from "react";
|
2
2
|
import { View } from "react-native";
|
3
|
-
import { Camera,
|
3
|
+
import { Camera, Point, useCameraDevice, useCameraFormat, useCameraPermission } from "react-native-vision-camera";
|
4
4
|
import Orientation from "react-native-orientation-locker";
|
5
5
|
import { Gesture, GestureDetector, GestureHandlerRootView } from "react-native-gesture-handler";
|
6
6
|
import { runOnJS } from "react-native-reanimated";
|
7
|
+
import Picker, { PickerStyle } from "react-native-picker-select";
|
7
8
|
|
9
|
+
import { CameraConfigInfo, CaptureButton, DeviceNotFound, Gabarito, ModalMessage } from "../../components";
|
8
10
|
import { styles } from "./styles";
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
|
11
|
+
import { useDispatch, useSelector } from "../../store/modules/fingerRegister";
|
12
|
+
import { filteredFingers, 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
|
+
}
|
12
26
|
|
13
27
|
type Props = {
|
14
28
|
UID: string;
|
@@ -16,19 +30,49 @@ type Props = {
|
|
16
30
|
isFocused?: boolean;
|
17
31
|
mock?: boolean;
|
18
32
|
testID?: string;
|
33
|
+
registerUser?: boolean;
|
34
|
+
registeredFingers?: string[];
|
19
35
|
};
|
20
36
|
|
21
|
-
const
|
37
|
+
const MultiFingerRegister = ({ testID, UID, onSuccess, isFocused, mock, registerUser, registeredFingers }: Props) => {
|
22
38
|
const cameraRef = useRef<Camera>(null);
|
23
39
|
const isForeground = useIsForeground();
|
24
40
|
const isActive = isFocused !== undefined ? isForeground && isFocused : isForeground;
|
25
41
|
const { hasPermission, requestPermission } = useCameraPermission();
|
42
|
+
const device = useCameraDevice("back");
|
26
43
|
const state = useSelector();
|
27
44
|
const dispatch = useDispatch();
|
28
|
-
const device = useCameraDevice("back");
|
29
|
-
const base64ImagesCount = state.base64Images.length;
|
30
45
|
|
31
46
|
const containerCaptureStyled = [styles.containerCapture, { bottom: state.showButtonInfo ? 75 : 20 }];
|
47
|
+
const pickerStyled: PickerStyle = {
|
48
|
+
chevronDown: { display: "none" },
|
49
|
+
chevronUp: { display: "none" },
|
50
|
+
inputIOS: {
|
51
|
+
fontSize: 16,
|
52
|
+
color: "#000",
|
53
|
+
textAlign: "center"
|
54
|
+
},
|
55
|
+
inputAndroid: {
|
56
|
+
fontSize: 14,
|
57
|
+
color: "#000",
|
58
|
+
textAlign: "center"
|
59
|
+
}
|
60
|
+
};
|
61
|
+
|
62
|
+
const itemsPicker = [
|
63
|
+
{ label: "Indicador Direito", value: Finger.RIGHT_INDEX },
|
64
|
+
{ label: "Médio Direito", value: Finger.RIGHT_MIDDLE },
|
65
|
+
{ label: "Anelar Direito", value: Finger.RIGHT_RING },
|
66
|
+
{ label: "Mínimo Direito", value: Finger.RIGHT_PINKY },
|
67
|
+
{ label: "Polegar Direito", value: Finger.RIGHT_THUMB },
|
68
|
+
{ label: "Indicador Esquerdo", value: Finger.LEFT_INDEX },
|
69
|
+
{ label: "Médio Esquerdo", value: Finger.LEFT_MIDDLE },
|
70
|
+
{ label: "Anelar Esquerdo", value: Finger.LEFT_RING },
|
71
|
+
{ label: "Mínimo Esquerdo", value: Finger.LEFT_PINKY },
|
72
|
+
{ label: "Polegar Esquerdo", value: Finger.LEFT_THUMB }
|
73
|
+
];
|
74
|
+
|
75
|
+
const filteredItemsPicker = filteredFingers(registeredFingers ?? [], itemsPicker);
|
32
76
|
|
33
77
|
useEffect(() => {
|
34
78
|
Orientation.lockToPortrait();
|
@@ -58,20 +102,21 @@ const FingerRegister = ({ testID, UID, onSuccess, isFocused, mock }: Props) => {
|
|
58
102
|
]);
|
59
103
|
|
60
104
|
useEffect(() => {
|
61
|
-
if (state.base64Images !== undefined &&
|
105
|
+
if (state.base64Images !== undefined && state.base64Images.length === 3) {
|
62
106
|
if (!UID) {
|
63
107
|
dispatch.setModal("Ocorreu um erro!", "Erro: UID não encontrado!");
|
64
108
|
}
|
65
109
|
dispatch.handleLoading();
|
66
|
-
dispatch.sendImages(state.base64Images, UID, mock);
|
110
|
+
dispatch.sendImages(state.base64Images, UID, mock, state.currentFinger);
|
67
111
|
}
|
68
|
-
}, [dispatch.sendImages, dispatch.handleLoading, state.base64Images,
|
112
|
+
}, [dispatch.sendImages, dispatch.handleLoading, state.base64Images, state.base64Images.length, mock]);
|
69
113
|
|
70
114
|
useEffect(() => {
|
71
115
|
if (state.code === 0) {
|
72
116
|
dispatch.setModal("Sucesso!", "Cadastro de digital realizado com sucesso!");
|
73
117
|
onSuccess && onSuccess?.(state.code);
|
74
118
|
mock === true ? setTimeout(() => dispatch.handleLoading(), 2000) : dispatch.handleLoading();
|
119
|
+
dispatch.handleFinger();
|
75
120
|
}
|
76
121
|
if (state.code !== 0 && state.code !== null) {
|
77
122
|
dispatch.setModal("Ocorreu um erro!", `Erro: ${state.message}`);
|
@@ -84,7 +129,9 @@ const FingerRegister = ({ testID, UID, onSuccess, isFocused, mock }: Props) => {
|
|
84
129
|
const photo = await cameraRef.current?.takePhoto({
|
85
130
|
qualityPrioritization: "balanced"
|
86
131
|
});
|
87
|
-
if (photo != null)
|
132
|
+
if (photo != null) {
|
133
|
+
dispatch.setImagePath(photo.path);
|
134
|
+
}
|
88
135
|
};
|
89
136
|
|
90
137
|
const focus = useCallback((point: Point) => {
|
@@ -98,6 +145,10 @@ const FingerRegister = ({ testID, UID, onSuccess, isFocused, mock }: Props) => {
|
|
98
145
|
runOnJS(focus)({ x, y });
|
99
146
|
});
|
100
147
|
|
148
|
+
const handleCurrentFinger = (value: string) => {
|
149
|
+
dispatch.setCurrentFinger(value as Finger);
|
150
|
+
};
|
151
|
+
|
101
152
|
if (device == null || hasPermission === false)
|
102
153
|
return <DeviceNotFound hasPermission={hasPermission} cameraPermission={cameraPermission} />;
|
103
154
|
|
@@ -114,18 +165,31 @@ const FingerRegister = ({ testID, UID, onSuccess, isFocused, mock }: Props) => {
|
|
114
165
|
torch={isActive ? "on" : "off"}
|
115
166
|
exposure={state.exposure}
|
116
167
|
zoom={state.zoom}
|
117
|
-
photo
|
168
|
+
photo
|
118
169
|
/>
|
119
170
|
<Gabarito />
|
120
171
|
</View>
|
121
172
|
</GestureDetector>
|
122
173
|
<View style={containerCaptureStyled}>
|
123
|
-
<CaptureButton onPress={takePhoto} imagesCount={
|
174
|
+
<CaptureButton onPress={takePhoto} imagesCount={state.base64Images.length} testID={testID} />
|
124
175
|
</View>
|
125
176
|
{state.showButtonInfo && <CameraConfigInfo exposure={state.exposure} zoom={state.zoom} />}
|
126
177
|
<ModalMessage isLoading={state.loading} modal={state.modal} />
|
178
|
+
<View style={styles.containerModal}>
|
179
|
+
<View style={styles.modal}>
|
180
|
+
<Picker
|
181
|
+
disabled={registerUser}
|
182
|
+
style={pickerStyled}
|
183
|
+
useNativeAndroidPickerStyle={false}
|
184
|
+
placeholder={{}}
|
185
|
+
items={filteredItemsPicker}
|
186
|
+
value={state.currentFinger}
|
187
|
+
onValueChange={handleCurrentFinger}
|
188
|
+
/>
|
189
|
+
</View>
|
190
|
+
</View>
|
127
191
|
</GestureHandlerRootView>
|
128
192
|
);
|
129
193
|
};
|
130
194
|
|
131
|
-
export default
|
195
|
+
export default MultiFingerRegister;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { StyleSheet, Dimensions } from "react-native";
|
1
|
+
import { StyleSheet, Dimensions, Platform } from "react-native";
|
2
2
|
|
3
3
|
const { height } = Dimensions.get("window");
|
4
4
|
|
@@ -24,5 +24,35 @@ export const styles = StyleSheet.create({
|
|
24
24
|
},
|
25
25
|
cameraConfigs: {
|
26
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
|
+
},
|
39
|
+
modal: {
|
40
|
+
margin: 20,
|
41
|
+
backgroundColor: "white",
|
42
|
+
borderRadius: 20,
|
43
|
+
padding: Platform.OS === "ios" ? 35 : 20,
|
44
|
+
shadowColor: "#000",
|
45
|
+
shadowOffset: {
|
46
|
+
width: 0,
|
47
|
+
height: 2
|
48
|
+
},
|
49
|
+
shadowOpacity: 0.25,
|
50
|
+
shadowRadius: 4,
|
51
|
+
elevation: 5
|
52
|
+
},
|
53
|
+
iconClose: {
|
54
|
+
position: "absolute",
|
55
|
+
alignSelf: "flex-end",
|
56
|
+
padding: 8
|
27
57
|
}
|
28
58
|
});
|
package/src/screens/index.ts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import FingerRegister from "./FingerRegister/FingerRegister";
|
2
2
|
import LifeCertificate from "./LifeCertificate/LifeCertificate";
|
3
3
|
import FingerAuth from "./FingerAuth/FingerAuth";
|
4
|
-
import MultiFingerRegister from "./MultiFingerRegister/MultiFingerRegister";
|
5
4
|
|
6
|
-
export { FingerRegister, LifeCertificate, FingerAuth
|
5
|
+
export { FingerRegister, LifeCertificate, FingerAuth };
|
package/src/utils/index.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import getConfigCamera from "./getConfigCamera";
|
2
|
-
import randomHeartRate from "./utils";
|
2
|
+
import { randomHeartRate, filteredFingers } from "./utils";
|
3
3
|
import { useIsForeground } from "./hooks/useIsForeground";
|
4
4
|
|
5
|
-
export { getConfigCamera, useIsForeground, randomHeartRate };
|
5
|
+
export { getConfigCamera, useIsForeground, randomHeartRate, filteredFingers };
|
package/src/utils/utils.ts
CHANGED
@@ -1,5 +1,14 @@
|
|
1
|
+
import { Finger } from "../services/types";
|
2
|
+
|
1
3
|
const randomHeartRate = (): number => {
|
2
4
|
return Math.floor(Math.random() * (90 - 75 + 1) + 75);
|
3
5
|
};
|
4
6
|
|
5
|
-
|
7
|
+
const filteredFingers = (
|
8
|
+
registeredFingers: string[],
|
9
|
+
items: { label: string; value: Finger }[]
|
10
|
+
): { label: string; value: Finger }[] => {
|
11
|
+
return items.filter((item) => !registeredFingers.includes(item.value));
|
12
|
+
};
|
13
|
+
|
14
|
+
export { randomHeartRate, filteredFingers };
|