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.
Files changed (64) hide show
  1. package/README.md +20 -0
  2. package/package.json +32 -0
  3. package/src/Asset/Icons/Female.png +0 -0
  4. package/src/Asset/Icons/FemaleI(1).png +0 -0
  5. package/src/Asset/Icons/Male(2).png +0 -0
  6. package/src/Asset/Icons/arrowleft.png +0 -0
  7. package/src/Asset/Icons/barcode2.png +0 -0
  8. package/src/Asset/Icons/calendar.png +0 -0
  9. package/src/Asset/Icons/downarrow.png +0 -0
  10. package/src/Asset/Icons/male.png +0 -0
  11. package/src/Asset/Icons/stethoscope.jpg +0 -0
  12. package/src/Asset/Icons/user.png +0 -0
  13. package/src/Asset/Icons/youtube.png +0 -0
  14. package/src/Asset/gif/Pulse.gif +0 -0
  15. package/src/Asset/gif/Search_blue.gif +0 -0
  16. package/src/Asset/gif/hb.gif +0 -0
  17. package/src/Asset/gif/heartpulse.gif +0 -0
  18. package/src/Asset/gif/lab_1.gif +0 -0
  19. package/src/Asset/gif/loader.gif +0 -0
  20. package/src/Asset/gif/overwrite.gif +0 -0
  21. package/src/Asset/gif/pharmacist.gif +0 -0
  22. package/src/Asset/images/AdamsNeilson.jpg +0 -0
  23. package/src/Asset/images/AyurvedicHospital.jpg +0 -0
  24. package/src/Asset/images/DevamathaLogo.jpg +0 -0
  25. package/src/Asset/images/IMA.png +0 -0
  26. package/src/Asset/images/amalainstitute.png +0 -0
  27. package/src/Asset/images/amalainstituteN.png +0 -0
  28. package/src/Asset/images/amalainstituteX.png +0 -0
  29. package/src/Asset/images/amalalogo.jpg +0 -0
  30. package/src/Asset/images/amalalogoN.jpg +0 -0
  31. package/src/Asset/images/arrow-collapse.png +0 -0
  32. package/src/Asset/images/arrow-expand.png +0 -0
  33. package/src/Asset/images/audio.png +0 -0
  34. package/src/Asset/images/camera.png +0 -0
  35. package/src/Asset/images/camera_red.png +0 -0
  36. package/src/Asset/images/companyaddress_transparent.png +0 -0
  37. package/src/Asset/images/companyname_transparent.png +0 -0
  38. package/src/Asset/images/download.png +0 -0
  39. package/src/Asset/images/jes.png +0 -0
  40. package/src/Asset/images/lefteye.jpg +0 -0
  41. package/src/Asset/images/mundakayamlogo.png +0 -0
  42. package/src/Asset/images/nirmalanabh.jpeg +0 -0
  43. package/src/Asset/images/pregnantlady.png +0 -0
  44. package/src/Asset/images/prescriptioneye.png +0 -0
  45. package/src/Asset/images/rblogo.png +0 -0
  46. package/src/Asset/images/righteye.jpg +0 -0
  47. package/src/Asset/images/rtlogo.png +0 -0
  48. package/src/Asset/images/video_red.png +0 -0
  49. package/src/Asset/images/vimaljyothi.png +0 -0
  50. package/src/components/CountdownTimer.js +42 -0
  51. package/src/components/EmployeeCard.js +61 -0
  52. package/src/components/Notification.js +63 -0
  53. package/src/components/StateIndicator.js +112 -0
  54. package/src/components/styles.js +182 -0
  55. package/src/hooks/useCountdown.js +72 -0
  56. package/src/hooks/useGeolocation.js +72 -0
  57. package/src/hooks/useImageProcessing.js +79 -0
  58. package/src/hooks/useNotifyMessage.js +131 -0
  59. package/src/index.js +283 -0
  60. package/src/utils/Global.js +6 -0
  61. package/src/utils/NetworkServiceCall.js +35 -0
  62. package/src/utils/constants.js +69 -0
  63. package/src/utils/distanceCalculator.js +25 -0
  64. 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
+ };
@@ -0,0 +1,7 @@
1
+ export const createLogger = (moduleName) => {
2
+ return (message, data = null) => {
3
+ if (__DEV__) {
4
+ console.log(`[${moduleName}] ${message}`, JSON.stringify(data));
5
+ }
6
+ };
7
+ };