react-native-biometric-verifier 0.0.1
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.
- package/README.md +20 -0
- package/package.json +32 -0
- package/src/Asset/Icons/Female.png +0 -0
- package/src/Asset/Icons/FemaleI(1).png +0 -0
- package/src/Asset/Icons/Male(2).png +0 -0
- package/src/Asset/Icons/arrowleft.png +0 -0
- package/src/Asset/Icons/barcode2.png +0 -0
- package/src/Asset/Icons/calendar.png +0 -0
- package/src/Asset/Icons/downarrow.png +0 -0
- package/src/Asset/Icons/male.png +0 -0
- package/src/Asset/Icons/stethoscope.jpg +0 -0
- package/src/Asset/Icons/user.png +0 -0
- package/src/Asset/Icons/youtube.png +0 -0
- package/src/Asset/gif/Pulse.gif +0 -0
- package/src/Asset/gif/Search_blue.gif +0 -0
- package/src/Asset/gif/hb.gif +0 -0
- package/src/Asset/gif/heartpulse.gif +0 -0
- package/src/Asset/gif/lab_1.gif +0 -0
- package/src/Asset/gif/loader.gif +0 -0
- package/src/Asset/gif/overwrite.gif +0 -0
- package/src/Asset/gif/pharmacist.gif +0 -0
- package/src/Asset/images/AdamsNeilson.jpg +0 -0
- package/src/Asset/images/AyurvedicHospital.jpg +0 -0
- package/src/Asset/images/DevamathaLogo.jpg +0 -0
- package/src/Asset/images/IMA.png +0 -0
- package/src/Asset/images/amalainstitute.png +0 -0
- package/src/Asset/images/amalainstituteN.png +0 -0
- package/src/Asset/images/amalainstituteX.png +0 -0
- package/src/Asset/images/amalalogo.jpg +0 -0
- package/src/Asset/images/amalalogoN.jpg +0 -0
- package/src/Asset/images/arrow-collapse.png +0 -0
- package/src/Asset/images/arrow-expand.png +0 -0
- package/src/Asset/images/audio.png +0 -0
- package/src/Asset/images/camera.png +0 -0
- package/src/Asset/images/camera_red.png +0 -0
- package/src/Asset/images/companyaddress_transparent.png +0 -0
- package/src/Asset/images/companyname_transparent.png +0 -0
- package/src/Asset/images/download.png +0 -0
- package/src/Asset/images/jes.png +0 -0
- package/src/Asset/images/lefteye.jpg +0 -0
- package/src/Asset/images/mundakayamlogo.png +0 -0
- package/src/Asset/images/nirmalanabh.jpeg +0 -0
- package/src/Asset/images/pregnantlady.png +0 -0
- package/src/Asset/images/prescriptioneye.png +0 -0
- package/src/Asset/images/rblogo.png +0 -0
- package/src/Asset/images/righteye.jpg +0 -0
- package/src/Asset/images/rtlogo.png +0 -0
- package/src/Asset/images/video_red.png +0 -0
- package/src/Asset/images/vimaljyothi.png +0 -0
- package/src/components/CountdownTimer.js +42 -0
- package/src/components/EmployeeCard.js +61 -0
- package/src/components/Notification.js +63 -0
- package/src/components/StateIndicator.js +112 -0
- package/src/components/styles.js +182 -0
- package/src/hooks/useCountdown.js +72 -0
- package/src/hooks/useGeolocation.js +72 -0
- package/src/hooks/useImageProcessing.js +79 -0
- package/src/hooks/useNotifyMessage.js +131 -0
- package/src/index.js +283 -0
- package/src/utils/Global.js +6 -0
- package/src/utils/NetworkServiceCall.js +35 -0
- package/src/utils/constants.js +69 -0
- package/src/utils/distanceCalculator.js +25 -0
- package/src/utils/logger.js +7 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Global } from "./Global";
|
|
2
|
+
|
|
3
|
+
// ====== BASE CONFIG ======
|
|
4
|
+
export const BASE_URL = Global.ipAddress;
|
|
5
|
+
export const PORT = Global.port;
|
|
6
|
+
export const APIURL = `http://${BASE_URL}:${PORT}/`;
|
|
7
|
+
|
|
8
|
+
// ====== API ENDPOINTS ======
|
|
9
|
+
export const RECOGNIZE_URL = APIURL + "python/recognize";
|
|
10
|
+
export const IMAGE_URL = APIURL + "file/filedownload/photo/";
|
|
11
|
+
|
|
12
|
+
// ====== COLORS ======
|
|
13
|
+
export const COLORS = {
|
|
14
|
+
primary: '#6C63FF',
|
|
15
|
+
primaryLight: '#8A85FF',
|
|
16
|
+
success: '#4CAF50',
|
|
17
|
+
error: '#F44336',
|
|
18
|
+
warning: '#FF9800',
|
|
19
|
+
info: '#2196F3',
|
|
20
|
+
dark: '#2D3748',
|
|
21
|
+
light: '#F7FAFC',
|
|
22
|
+
gray: '#A0AEC0',
|
|
23
|
+
background: '#F8F9FA',
|
|
24
|
+
cardBackground: '#FFFFFF',
|
|
25
|
+
textLight: '#FFFFFF',
|
|
26
|
+
shadow: '#00000033', // semi-transparent shadow
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// ====== ANIMATION STATES ======
|
|
30
|
+
export const ANIMATION_STATES = {
|
|
31
|
+
FACE_SCAN: 'faceScan',
|
|
32
|
+
QR_SCAN: 'qrScan',
|
|
33
|
+
PROCESSING: 'processing',
|
|
34
|
+
SUCCESS: 'success',
|
|
35
|
+
ERROR: 'error',
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// ====== IMAGE RESIZE CONFIG ======
|
|
39
|
+
export const IMAGE_RESIZE = {
|
|
40
|
+
width: 640,
|
|
41
|
+
height: 640,
|
|
42
|
+
format: 'JPEG', // 'PNG' or 'JPEG'
|
|
43
|
+
quality: 85, // 0-100
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// ====== CONSTANTS ======
|
|
47
|
+
export const COUNTDOWN_DURATION = 120; // seconds
|
|
48
|
+
export const MAX_DISTANCE_METERS = 100; // Max allowed distance for QR verification
|
|
49
|
+
|
|
50
|
+
// ====== NOTIFICATION SETTINGS ======
|
|
51
|
+
export const NOTIFICATION = {
|
|
52
|
+
DEFAULT_DURATION: 3000, // ms
|
|
53
|
+
FADE_DURATION: 300, // ms
|
|
54
|
+
SLIDE_DISTANCE: 20, // px
|
|
55
|
+
VIBRATION_DURATION: 100, // ms
|
|
56
|
+
TOAST_OFFSET: 80, // Android Toast vertical offset
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// ====== QR VERIFICATION SETTINGS ======
|
|
60
|
+
export const QR_VERIFICATION = {
|
|
61
|
+
MAX_ATTEMPTS: 3, // Maximum retries for QR scan
|
|
62
|
+
TIMEOUT: 10000, // Timeout in ms per scan
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// ====== PLATFORM ======
|
|
66
|
+
export const PLATFORM = {
|
|
67
|
+
IOS: 'ios',
|
|
68
|
+
ANDROID: 'android',
|
|
69
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the distance between two geographical points in meters.
|
|
3
|
+
* Uses the Haversine formula.
|
|
4
|
+
*
|
|
5
|
+
* @param {number} lat1 - Latitude of the first point in decimal degrees.
|
|
6
|
+
* @param {number} lng1 - Longitude of the first point in decimal degrees.
|
|
7
|
+
* @param {number} lat2 - Latitude of the second point in decimal degrees.
|
|
8
|
+
* @param {number} lng2 - Longitude of the second point in decimal degrees.
|
|
9
|
+
* @returns {number} Distance in meters.
|
|
10
|
+
*/
|
|
11
|
+
export const getDistanceInMeters = (lat1, lng1, lat2, lng2) => {
|
|
12
|
+
const toRad = (value) => (value * Math.PI) / 180;
|
|
13
|
+
|
|
14
|
+
const R = 6371000; // Earth radius in meters
|
|
15
|
+
const dLat = toRad(lat2 - lat1);
|
|
16
|
+
const dLng = toRad(lng2 - lng1);
|
|
17
|
+
|
|
18
|
+
const a =
|
|
19
|
+
Math.sin(dLat / 2) ** 2 +
|
|
20
|
+
Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * Math.sin(dLng / 2) ** 2;
|
|
21
|
+
|
|
22
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
23
|
+
|
|
24
|
+
return R * c;
|
|
25
|
+
};
|