@transfergratis/react-native-sdk 0.1.3 → 0.1.5
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/android/.idea/caches/deviceStreaming.xml +860 -0
- package/android/build/.transforms/{7ec900c0f64f5f1a7c88998dd44001b8 → 01c28d00c798aa4846f16ce72123ebf9}/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +1 -0
- package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
- package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -2
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +51 -48
- package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-transfergratis-react-native-sdk.jar +0 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +1 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/outputs/aar/transfergratis-react-native-sdk-debug.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +27 -23
- package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkView.class +0 -0
- package/android/build.gradle +1 -5
- package/android/src/main/AndroidManifest.xml +1 -0
- package/build/api/axios.d.ts +30 -0
- package/build/api/axios.d.ts.map +1 -0
- package/build/api/axios.js +92 -0
- package/build/api/axios.js.map +1 -0
- package/build/components/EnhancedCameraView.d.ts +1 -41
- package/build/components/EnhancedCameraView.d.ts.map +1 -1
- package/build/components/EnhancedCameraView.js +76 -35
- package/build/components/EnhancedCameraView.js.map +1 -1
- package/build/components/EnhancedCameraView.web.d.ts +1 -41
- package/build/components/EnhancedCameraView.web.d.ts.map +1 -1
- package/build/components/EnhancedCameraView.web.js +28 -4
- package/build/components/EnhancedCameraView.web.js.map +1 -1
- package/build/components/KYCElements/CountrySelectionTemplate.d.ts +2 -2
- package/build/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/CountrySelectionTemplate.js +71 -114
- package/build/components/KYCElements/CountrySelectionTemplate.js.map +1 -1
- package/build/components/KYCElements/FileUploadTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/FileUploadTemplate.js +7 -3
- package/build/components/KYCElements/FileUploadTemplate.js.map +1 -1
- package/build/components/KYCElements/IDCardCapture.d.ts +7 -2
- package/build/components/KYCElements/IDCardCapture.d.ts.map +1 -1
- package/build/components/KYCElements/IDCardCapture.js +253 -104
- package/build/components/KYCElements/IDCardCapture.js.map +1 -1
- package/build/components/KYCElements/InitializationStep.d.ts +5 -0
- package/build/components/KYCElements/InitializationStep.d.ts.map +1 -0
- package/build/components/KYCElements/InitializationStep.js +41 -0
- package/build/components/KYCElements/InitializationStep.js.map +1 -0
- package/build/components/KYCElements/LocationCaptureTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/LocationCaptureTemplate.js +15 -13
- package/build/components/KYCElements/LocationCaptureTemplate.js.map +1 -1
- package/build/components/KYCElements/OrientationVideoCapture.d.ts +2 -2
- package/build/components/KYCElements/OrientationVideoCapture.d.ts.map +1 -1
- package/build/components/KYCElements/OrientationVideoCapture.js.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts +2 -2
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts +2 -2
- package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureFinal.js.map +1 -1
- package/build/components/KYCElements/ReviewSubmitTemplate.d.ts +12 -0
- package/build/components/KYCElements/ReviewSubmitTemplate.d.ts.map +1 -0
- package/build/components/KYCElements/ReviewSubmitTemplate.js +171 -0
- package/build/components/KYCElements/ReviewSubmitTemplate.js.map +1 -0
- package/build/components/KYCElements/SelfieCaptureTemplate.d.ts +6 -2
- package/build/components/KYCElements/SelfieCaptureTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/SelfieCaptureTemplate.js +105 -35
- package/build/components/KYCElements/SelfieCaptureTemplate.js.map +1 -1
- package/build/components/KYCElements/VerificationProgressTemplate.d.ts +12 -0
- package/build/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -0
- package/build/components/KYCElements/VerificationProgressTemplate.js +93 -0
- package/build/components/KYCElements/VerificationProgressTemplate.js.map +1 -0
- package/build/components/OverLay/IdCard.d.ts +1 -1
- package/build/components/OverLay/IdCard.d.ts.map +1 -1
- package/build/components/OverLay/IdCard.js +10 -6
- package/build/components/OverLay/IdCard.js.map +1 -1
- package/build/components/OverLay/SelfieOverlay.d.ts +1 -1
- package/build/components/OverLay/SelfieOverlay.d.ts.map +1 -1
- package/build/components/OverLay/SelfieOverlay.js +5 -4
- package/build/components/OverLay/SelfieOverlay.js.map +1 -1
- package/build/components/OverLay/type.d.ts +71 -1
- package/build/components/OverLay/type.d.ts.map +1 -1
- package/build/components/OverLay/type.js.map +1 -1
- package/build/components/TemplateKYCExample.d.ts.map +1 -1
- package/build/components/TemplateKYCExample.js +72 -197
- package/build/components/TemplateKYCExample.js.map +1 -1
- package/build/components/TemplateKYCFlowRefactored.d.ts.map +1 -1
- package/build/components/TemplateKYCFlowRefactored.js +63 -39
- package/build/components/TemplateKYCFlowRefactored.js.map +1 -1
- package/build/components/VisionCameraView.js +1 -1
- package/build/components/VisionCameraView.js.map +1 -1
- package/build/components/example/OrientationVideoExample.d.ts.map +1 -1
- package/build/components/example/OrientationVideoExample.js +1 -5
- package/build/components/example/OrientationVideoExample.js.map +1 -1
- package/build/components/ui/Button.js +1 -1
- package/build/components/ui/Button.js.map +1 -1
- package/build/config/countriesData.d.ts +3 -0
- package/build/config/countriesData.d.ts.map +1 -0
- package/build/config/countriesData.js +79 -0
- package/build/config/countriesData.js.map +1 -0
- package/build/config/region_mapping.d.ts +3 -0
- package/build/config/region_mapping.d.ts.map +1 -0
- package/build/config/region_mapping.js +687 -0
- package/build/config/region_mapping.js.map +1 -0
- package/build/hooks/useI18n.d.ts +11 -0
- package/build/hooks/useI18n.d.ts.map +1 -0
- package/build/hooks/useI18n.js +37 -0
- package/build/hooks/useI18n.js.map +1 -0
- package/build/hooks/useOrientationVideo.d.ts +1 -2
- package/build/hooks/useOrientationVideo.d.ts.map +1 -1
- package/build/hooks/useOrientationVideo.js +2 -1
- package/build/hooks/useOrientationVideo.js.map +1 -1
- package/build/hooks/useRealtimeVerifier.d.ts +28 -0
- package/build/hooks/useRealtimeVerifier.d.ts.map +1 -0
- package/build/hooks/useRealtimeVerifier.js +91 -0
- package/build/hooks/useRealtimeVerifier.js.map +1 -0
- package/build/hooks/useTemplateKYCFlow.d.ts +1 -0
- package/build/hooks/useTemplateKYCFlow.d.ts.map +1 -1
- package/build/hooks/useTemplateKYCFlow.js +337 -38
- package/build/hooks/useTemplateKYCFlow.js.map +1 -1
- package/build/i18n/en/index.d.ts +168 -0
- package/build/i18n/en/index.d.ts.map +1 -0
- package/build/i18n/en/index.js +195 -0
- package/build/i18n/en/index.js.map +1 -0
- package/build/i18n/fr/index.d.ts +168 -0
- package/build/i18n/fr/index.d.ts.map +1 -0
- package/build/i18n/fr/index.js +194 -0
- package/build/i18n/fr/index.js.map +1 -0
- package/build/i18n/index.d.ts +10 -0
- package/build/i18n/index.d.ts.map +1 -0
- package/build/i18n/index.js +56 -0
- package/build/i18n/index.js.map +1 -0
- package/build/i18n/types.d.ts +153 -0
- package/build/i18n/types.d.ts.map +1 -0
- package/build/i18n/types.js +3 -0
- package/build/i18n/types.js.map +1 -0
- package/build/i18n/usage-example.d.ts +4 -0
- package/build/i18n/usage-example.d.ts.map +1 -0
- package/build/i18n/usage-example.js +189 -0
- package/build/i18n/usage-example.js.map +1 -0
- package/build/modules/api/CardAuthentification.d.ts +22 -0
- package/build/modules/api/CardAuthentification.d.ts.map +1 -0
- package/build/modules/api/CardAuthentification.js +107 -0
- package/build/modules/api/CardAuthentification.js.map +1 -0
- package/build/modules/api/KYCService.d.ts +57 -1
- package/build/modules/api/KYCService.d.ts.map +1 -1
- package/build/modules/api/KYCService.js +348 -27
- package/build/modules/api/KYCService.js.map +1 -1
- package/build/modules/api/SelfieVerification.d.ts +3 -0
- package/build/modules/api/SelfieVerification.d.ts.map +1 -0
- package/build/modules/api/SelfieVerification.js +9 -0
- package/build/modules/api/SelfieVerification.js.map +1 -0
- package/build/modules/api/backendApi.d.ts +2 -0
- package/build/modules/api/backendApi.d.ts.map +1 -0
- package/build/modules/api/backendApi.js +6 -0
- package/build/modules/api/backendApi.js.map +1 -0
- package/build/modules/api/types.d.ts +20 -0
- package/build/modules/api/types.d.ts.map +1 -0
- package/build/modules/api/types.js +2 -0
- package/build/modules/api/types.js.map +1 -0
- package/build/modules/camera/VisionCameraModule.d.ts +1 -1
- package/build/modules/camera/VisionCameraModule.d.ts.map +1 -1
- package/build/modules/camera/VisionCameraModule.js +8 -2
- package/build/modules/camera/VisionCameraModule.js.map +1 -1
- package/build/types/KYC.types.d.ts +59 -7
- package/build/types/KYC.types.d.ts.map +1 -1
- package/build/types/KYC.types.js +9 -1
- package/build/types/KYC.types.js.map +1 -1
- package/build/utils/cropByObb.d.ts +11 -0
- package/build/utils/cropByObb.d.ts.map +1 -0
- package/build/utils/cropByObb.js +78 -0
- package/build/utils/cropByObb.js.map +1 -0
- package/build/utils/get-document-type-info.d.ts +13 -0
- package/build/utils/get-document-type-info.d.ts.map +1 -0
- package/build/utils/get-document-type-info.js +59 -0
- package/build/utils/get-document-type-info.js.map +1 -0
- package/build/utils/pathToBase64.d.ts +3 -0
- package/build/utils/pathToBase64.d.ts.map +1 -0
- package/build/utils/pathToBase64.js +47 -0
- package/build/utils/pathToBase64.js.map +1 -0
- package/build/utils/remove-duplicate.d.ts +2 -0
- package/build/utils/remove-duplicate.d.ts.map +1 -0
- package/build/utils/remove-duplicate.js +4 -0
- package/build/utils/remove-duplicate.js.map +1 -0
- package/package.json +3 -1
- package/src/api/axios.ts +144 -0
- package/src/components/EnhancedCameraView.tsx +96 -78
- package/src/components/EnhancedCameraView.web.tsx +41 -40
- package/src/components/KYCElements/CountrySelectionTemplate.tsx +104 -136
- package/src/components/KYCElements/FileUploadTemplate.tsx +14 -8
- package/src/components/KYCElements/IDCardCapture.tsx +311 -115
- package/src/components/KYCElements/InitializationStep.tsx +53 -0
- package/src/components/KYCElements/LocationCaptureTemplate.tsx +17 -15
- package/src/components/KYCElements/OrientationVideoCapture.tsx +2 -2
- package/src/components/KYCElements/OrientationVideoCaptureEnhanced.tsx +2 -2
- package/src/components/KYCElements/OrientationVideoCaptureFinal.tsx +2 -2
- package/src/components/KYCElements/ReviewSubmitTemplate.tsx +201 -0
- package/src/components/KYCElements/SelfieCaptureTemplate.tsx +140 -53
- package/src/components/KYCElements/VerificationProgressTemplate.tsx +123 -0
- package/src/components/OverLay/IdCard.tsx +17 -9
- package/src/components/OverLay/SelfieOverlay.tsx +6 -5
- package/src/components/OverLay/type.ts +64 -2
- package/src/components/TemplateKYCExample.tsx +76 -197
- package/src/components/TemplateKYCFlowRefactored.tsx +74 -46
- package/src/components/VisionCameraView.tsx +1 -1
- package/src/components/example/OrientationVideoExample.tsx +3 -7
- package/src/components/ui/Button.tsx +1 -1
- package/src/config/countriesData.ts +84 -0
- package/src/config/region_mapping.ts +688 -0
- package/src/hooks/useI18n.ts +53 -0
- package/src/hooks/useOrientationVideo.ts +2 -2
- package/src/hooks/useRealtimeVerifier.ts +128 -0
- package/src/hooks/useTemplateKYCFlow.tsx +375 -53
- package/src/i18n/README.md +288 -0
- package/src/i18n/en/index.ts +206 -0
- package/src/i18n/fr/index.ts +205 -0
- package/src/i18n/index.ts +65 -0
- package/src/i18n/types.ts +172 -0
- package/src/i18n/usage-example.tsx +202 -0
- package/src/modules/api/CardAuthentification.ts +114 -0
- package/src/modules/api/KYCService.ts +403 -30
- package/src/modules/api/SelfieVerification.ts +11 -0
- package/src/modules/api/backendApi.ts +8 -0
- package/src/modules/api/types.ts +24 -0
- package/src/modules/camera/VisionCameraModule.ts +16 -7
- package/src/types/KYC.types.ts +83 -14
- package/src/utils/cropByObb.ts +99 -0
- package/src/utils/get-document-type-info.ts +62 -0
- package/src/utils/pathToBase64.ts +47 -0
- package/src/utils/remove-duplicate.ts +3 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/results.bin +0 -1
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/BuildConfig.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$1.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$2.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$1.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$2.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$3.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$4.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$5.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$6.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$1.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$2.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$3.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$View$1.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$1.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$2.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkView.dex +0 -0
- package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/BuildConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$5.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$View$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkView.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/META-INF/transfergratis-sdk_debug.kotlin_module +0 -0
- package/src/types/nativewind.d.ts +0 -2
- /package/android/build/.transforms/{7ec900c0f64f5f1a7c88998dd44001b8 → 01c28d00c798aa4846f16ce72123ebf9}/results.bin +0 -0
- /package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/{transfergratis-sdk_debug.kotlin_module → transfergratis-react-native-sdk_debug.kotlin_module} +0 -0
- /package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/transfergratis-sdk_debug.kotlin_module → tmp/kotlin-classes/debug/META-INF/transfergratis-react-native-sdk_debug.kotlin_module} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrientationVideoCaptureEnhanced.js","sourceRoot":"","sources":["../../../src/components/KYCElements/OrientationVideoCaptureEnhanced.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n Alert,\n ActivityIndicator,\n Animated,\n Dimensions,\n} from 'react-native';\nimport Svg, { Rect, Path, Mask, Defs } from 'react-native-svg';\nimport { EnhancedCameraView } from '../EnhancedCameraView';\nimport { OrientationVideoConfig, OrientationVideoState } from '../../types/KYC.types';\nimport KYCService from '../../modules/api/KYCService';\nimport FrontSelfieIcon from '../Svgs/frontSelfieIcon';\nimport ScanningLine from '../Svgs/scanningLine';\n\ninterface OrientationVideoCaptureEnhancedProps {\n config?: Partial<OrientationVideoConfig>;\n onComplete: (result: any) => void;\n onError: (error: string) => void;\n kycService: KYCService;\n}\n\nconst defaultConfig: OrientationVideoConfig = {\n duration: 10, // 10 seconds\n orientations: ['center', 'left', 'right'],\n instructions: {\n center: 'Look straight ahead at the camera',\n left: 'Turn your head to the left',\n right: 'Turn your head to the right',\n },\n showPreview: true,\n allowRetake: true,\n maxRetakes: 3,\n quality: 0.8,\n aspectRatio: 16 / 9,\n};\n\nexport const OrientationVideoCaptureEnhanced: React.FC<OrientationVideoCaptureEnhancedProps> = ({\n config = {},\n onComplete,\n onError,\n kycService,\n}) => {\n const finalConfig = { ...defaultConfig, ...config };\n const { width: screenWidth, height: screenHeight } = Dimensions.get('window');\n \n const bbox = [20, 140, 370, 340]; // [xMin, yMin, xMax, yMax]\n \n const [state, setState] = useState<OrientationVideoState>({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n\n const [showCamera, setShowCamera] = useState(true);\n const instructionAnimation = useRef(new Animated.Value(0)).current;\n const recordingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n startInstructionAnimation();\n }, []);\n\n useEffect(() => {\n return () => {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n }\n };\n }, []);\n\n const startInstructionAnimation = () => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(instructionAnimation, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: false,\n }),\n Animated.timing(instructionAnimation, {\n toValue: 0.8,\n duration: 1000,\n useNativeDriver: false,\n }),\n ])\n ).start();\n };\n\n const startRecording = async () => {\n if (state.isRecording) return;\n\n try {\n setState(prev => ({ ...prev, isRecording: true, error: null }));\n \n // Simulate video recording with photo capture\n // In a real implementation, you would need to extend EnhancedCameraView for video\n const mockVideoPath = `video_${Date.now()}.mp4`;\n \n // Set timeout to simulate recording duration\n recordingTimeoutRef.current = setTimeout(() => {\n setState(prev => ({ \n ...prev, \n isRecording: false, \n recordedVideo: mockVideoPath \n }));\n // Process the video immediately\n processVideo(mockVideoPath);\n }, finalConfig.duration * 1000);\n\n } catch (error) {\n console.error('Error starting recording:', error);\n setState(prev => ({ \n ...prev, \n isRecording: false, \n error: 'Failed to start recording' \n }));\n onError('Failed to start recording');\n }\n };\n\n const stopRecording = async () => {\n if (!state.isRecording) return;\n\n try {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n recordingTimeoutRef.current = null;\n }\n \n const mockVideoPath = `video_${Date.now()}.mp4`;\n setState(prev => ({ \n ...prev, \n isRecording: false, \n recordedVideo: mockVideoPath \n }));\n \n // Process the video immediately\n processVideo(mockVideoPath);\n } catch (error) {\n console.error('Error stopping recording:', error);\n }\n };\n\n const processVideo = async (videoUri: string) => {\n if (state.isProcessing) return;\n\n setState(prev => ({ ...prev, isProcessing: true, error: null }));\n\n try {\n const result = await kycService.processOrientationVideo(videoUri);\n \n if (result.success && result.data) {\n setState(prev => ({ \n ...prev, \n processingResult: result.data || null,\n isProcessing: false \n }));\n onComplete(result.data);\n } else {\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: result.message || 'Processing failed' \n }));\n onError(result.message || 'Processing failed');\n }\n } catch (error) {\n console.error('Error processing video:', error);\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: 'Failed to process video' \n }));\n onError('Failed to process video');\n }\n };\n\n const retake = () => {\n if (state.retakeCount >= finalConfig.maxRetakes) {\n Alert.alert('Max Retakes Reached', 'You have reached the maximum number of retakes.');\n return;\n }\n\n setState(prev => ({ \n ...prev, \n recordedVideo: null,\n processingResult: null,\n error: null,\n retakeCount: prev.retakeCount + 1 \n }));\n setShowCamera(true);\n };\n\n const reset = () => {\n setState({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n setShowCamera(true);\n };\n\n const handleCapture = (result: { success: boolean; path?: string; error?: string }) => {\n if (result.success && result.path) {\n // For demo purposes, we'll use the photo as a video placeholder\n setState(prev => ({\n ...prev,\n recordedVideo: result.path || null\n }));\n setShowCamera(false);\n // Process the video\n processVideo(result.path);\n } else {\n setState(prev => ({ \n ...prev, \n error: result.error || 'Capture failed' \n }));\n onError(result.error || 'Capture failed');\n }\n };\n\n const renderInstructions = () => {\n if (!state.currentOrientation) return null;\n\n const instruction = finalConfig.instructions[state.currentOrientation];\n \n return (\n <Animated.View \n style={[\n styles.instructionContainer,\n { opacity: instructionAnimation }\n ]}\n >\n <Text style={styles.instructionText}>{instruction}</Text>\n </Animated.View>\n );\n };\n\n const renderProcessingResult = () => {\n if (!state.processingResult) return null;\n\n const { center, left, right } = state.processingResult;\n const allCaptured = center.captured && left.captured && right.captured;\n\n return (\n <View style={styles.resultContainer}>\n <Text style={styles.resultTitle}>\n {allCaptured ? '✅ All orientations captured!' : '⚠️ Some orientations missing'}\n </Text>\n \n <View style={styles.orientationResults}>\n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Center</Text>\n <Text style={[styles.orientationStatus, center.captured && styles.captured]}>\n {center.captured ? '✅' : '❌'}\n </Text>\n {center.captured && (\n <Text style={styles.frameInfo}>Frame: {center.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Left</Text>\n <Text style={[styles.orientationStatus, left.captured && styles.captured]}>\n {left.captured ? '✅' : '❌'}\n </Text>\n {left.captured && (\n <Text style={styles.frameInfo}>Frame: {left.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Right</Text>\n <Text style={[styles.orientationStatus, right.captured && styles.captured]}>\n {right.captured ? '✅' : '❌'}\n </Text>\n {right.captured && (\n <Text style={styles.frameInfo}>Frame: {right.frame}</Text>\n )}\n </View>\n </View>\n </View>\n );\n };\n\n if (state.recordedVideo && finalConfig.showPreview) {\n return (\n <View style={styles.container}>\n <View style={styles.videoPreview}>\n <Text style={styles.previewText}>Video recorded successfully</Text>\n <Text style={styles.previewSubtext}>Path: {state.recordedVideo}</Text>\n </View>\n \n {state.isProcessing && (\n <View style={styles.processingOverlay}>\n <ActivityIndicator size=\"large\" color=\"#007AFF\" />\n <Text style={styles.processingText}>Processing video...</Text>\n </View>\n )}\n \n {renderProcessingResult()}\n \n <View style={styles.buttonContainer}>\n {finalConfig.allowRetake && state.retakeCount < finalConfig.maxRetakes && (\n <TouchableOpacity style={styles.retakeButton} onPress={retake}>\n <Text style={styles.retakeButtonText}>\n Retake ({finalConfig.maxRetakes - state.retakeCount} left)\n </Text>\n </TouchableOpacity>\n )}\n \n <TouchableOpacity style={styles.resetButton} onPress={reset}>\n <Text style={styles.resetButtonText}>Start Over</Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n }\n\n return (\n <View style={styles.container}>\n <EnhancedCameraView\n showCamera={showCamera}\n showSwitchCamera={false}\n cameraType=\"front\"\n bbox={{\n xMin: 150,\n yMin: 210,\n xMax: 350,\n yMax: 410,\n borderColor: \"#2DBD60\",\n borderWidth: 3,\n cornerRadius: 8\n }}\n onCapture={handleCapture}\n onError={(error) => {\n setState(prev => ({ ...prev, error: error.message }));\n onError(error.message);\n }}\n overlayComponent={\n <View style={styles.overlay}>\n {renderInstructions()}\n \n {/* SideSelfieIcon overlay with mask */}\n <View style={styles.iconOverlay}>\n <Svg\n height=\"100%\"\n width=\"100%\"\n style={[StyleSheet.absoluteFill]}\n >\n <Defs>\n <Mask id=\"faceMask\">\n {/* Fond blanc - zone visible (extérieur) */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"white\"\n />\n {/* Zone noire - zone masquée (forme du visage dans le bbox) */}\n <Path\n d=\"M35.4198 48.9242C38.2153 41.9014 42.5851 35.6693 48.3859 30.8232C61.3601 19.9842 88.1543 1.5 120 1.5C151.846 1.5 178.64 19.9842 191.614 30.8232C197.415 35.6693 201.785 41.9014 204.58 48.9242C210.484 63.7564 220 93.0114 220 127.5C220 168.082 204.19 212.617 198.234 227.954C196.792 231.667 194.971 235.196 192.628 238.417C183.46 251.021 156.313 283.5 120 283.5C83.6867 283.5 56.5401 251.021 47.3723 238.417C45.0294 235.196 43.2081 231.667 41.7663 227.954C35.8102 212.617 20 168.082 20 127.5C20 93.0114 29.5157 63.7564 35.4198 48.9242Z\"\n fill=\"black\"\n transform={`translate(${bbox[0] + (bbox[2] - bbox[0]) / 2}, ${bbox[1] + (bbox[3] - bbox[1]) / 2}) scale(1) translate(-120, -142.5)`}\n />\n </Mask>\n </Defs>\n\n {/* Overlay semi-transparent avec masque */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"rgba(0, 0, 0, 0.5)\"\n mask=\"url(#faceMask)\"\n />\n <ScanningLine yMin={140} screenWidth={screenWidth} height={screenHeight} yMax={340}/>\n </Svg>\n \n {/* SideSelfieIcon positioned in the bbox */}\n <View style={[styles.iconContainer, {\n left: 20,\n top: 140,\n width: 350,\n height: 200,\n }]}>\n <FrontSelfieIcon/>\n {/* <SideSelfieIcon /> */}\n </View>\n </View>\n \n {state.error && (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>{state.error}</Text>\n </View>\n )}\n \n <View style={styles.controlsContainer}>\n {state.isRecording ? (\n <TouchableOpacity style={styles.stopButton} onPress={stopRecording}>\n <Text style={styles.stopButtonText}>Stop Recording</Text>\n </TouchableOpacity>\n ) : (\n <TouchableOpacity \n style={styles.recordButton} \n onPress={startRecording}\n disabled={state.isProcessing}\n >\n <Text style={styles.recordButtonText}>Start Recording</Text>\n </TouchableOpacity>\n )}\n </View>\n </View>\n }\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#000',\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n flex: 1,\n width: '100%',\n height: '100%',\n },\n instructionContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n padding: 15,\n borderRadius: 10,\n marginTop: 50,\n alignSelf: 'center',\n },\n instructionText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n controlsContainer: {\n alignItems: 'center',\n marginBottom: 50,\n },\n recordButton: {\n backgroundColor: '#FF3B30',\n paddingHorizontal: 30,\n paddingVertical: 15,\n borderRadius: 25,\n minWidth: 150,\n alignItems: 'center',\n },\n recordButtonText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n },\n stopButton: {\n backgroundColor: '#007AFF',\n paddingHorizontal: 30,\n paddingVertical: 15,\n borderRadius: 25,\n minWidth: 150,\n alignItems: 'center',\n },\n stopButtonText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n },\n videoPreview: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: '#f0f0f0',\n },\n previewText: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 10,\n },\n previewSubtext: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n paddingHorizontal: 20,\n },\n processingOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n processingText: {\n color: '#fff',\n fontSize: 16,\n marginTop: 10,\n },\n resultContainer: {\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n padding: 20,\n borderRadius: 10,\n margin: 20,\n },\n resultTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n marginBottom: 15,\n },\n orientationResults: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n },\n orientationResult: {\n alignItems: 'center',\n },\n orientationLabel: {\n fontSize: 14,\n fontWeight: '600',\n marginBottom: 5,\n },\n orientationStatus: {\n fontSize: 20,\n marginBottom: 5,\n },\n captured: {\n color: '#34C759',\n },\n frameInfo: {\n fontSize: 12,\n color: '#666',\n },\n buttonContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n padding: 20,\n },\n retakeButton: {\n backgroundColor: '#FF9500',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n retakeButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n resetButton: {\n backgroundColor: '#007AFF',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n resetButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n errorContainer: {\n backgroundColor: 'rgba(255, 59, 48, 0.8)',\n padding: 15,\n borderRadius: 10,\n margin: 20,\n },\n errorText: {\n color: '#fff',\n fontSize: 16,\n textAlign: 'center',\n },\n iconOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconContainer: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default OrientationVideoCaptureEnhanced; "]}
|
|
1
|
+
{"version":3,"file":"OrientationVideoCaptureEnhanced.js","sourceRoot":"","sources":["../../../src/components/KYCElements/OrientationVideoCaptureEnhanced.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n Alert,\n ActivityIndicator,\n Animated,\n Dimensions,\n} from 'react-native';\nimport Svg, { Rect, Path, Mask, Defs } from 'react-native-svg';\nimport { EnhancedCameraView } from '../EnhancedCameraView';\nimport { OrientationVideoConfig, OrientationVideoState } from '../../types/KYC.types';\nimport kycService from '../../modules/api/KYCService';\nimport FrontSelfieIcon from '../Svgs/frontSelfieIcon';\nimport ScanningLine from '../Svgs/scanningLine';\n\ninterface OrientationVideoCaptureEnhancedProps {\n config?: Partial<OrientationVideoConfig>;\n onComplete: (result: any) => void;\n onError: (error: string) => void;\n kycService: typeof kycService;\n}\n\nconst defaultConfig: OrientationVideoConfig = {\n duration: 10, // 10 seconds\n orientations: ['center', 'left', 'right'],\n instructions: {\n center: 'Look straight ahead at the camera',\n left: 'Turn your head to the left',\n right: 'Turn your head to the right',\n },\n showPreview: true,\n allowRetake: true,\n maxRetakes: 3,\n quality: 0.8,\n aspectRatio: 16 / 9,\n};\n\nexport const OrientationVideoCaptureEnhanced: React.FC<OrientationVideoCaptureEnhancedProps> = ({\n config = {},\n onComplete,\n onError,\n kycService,\n}) => {\n const finalConfig = { ...defaultConfig, ...config };\n const { width: screenWidth, height: screenHeight } = Dimensions.get('window');\n \n const bbox = [20, 140, 370, 340]; // [xMin, yMin, xMax, yMax]\n \n const [state, setState] = useState<OrientationVideoState>({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n\n const [showCamera, setShowCamera] = useState(true);\n const instructionAnimation = useRef(new Animated.Value(0)).current;\n const recordingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n startInstructionAnimation();\n }, []);\n\n useEffect(() => {\n return () => {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n }\n };\n }, []);\n\n const startInstructionAnimation = () => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(instructionAnimation, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: false,\n }),\n Animated.timing(instructionAnimation, {\n toValue: 0.8,\n duration: 1000,\n useNativeDriver: false,\n }),\n ])\n ).start();\n };\n\n const startRecording = async () => {\n if (state.isRecording) return;\n\n try {\n setState(prev => ({ ...prev, isRecording: true, error: null }));\n \n // Simulate video recording with photo capture\n // In a real implementation, you would need to extend EnhancedCameraView for video\n const mockVideoPath = `video_${Date.now()}.mp4`;\n \n // Set timeout to simulate recording duration\n recordingTimeoutRef.current = setTimeout(() => {\n setState(prev => ({ \n ...prev, \n isRecording: false, \n recordedVideo: mockVideoPath \n }));\n // Process the video immediately\n processVideo(mockVideoPath);\n }, finalConfig.duration * 1000);\n\n } catch (error) {\n console.error('Error starting recording:', error);\n setState(prev => ({ \n ...prev, \n isRecording: false, \n error: 'Failed to start recording' \n }));\n onError('Failed to start recording');\n }\n };\n\n const stopRecording = async () => {\n if (!state.isRecording) return;\n\n try {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n recordingTimeoutRef.current = null;\n }\n \n const mockVideoPath = `video_${Date.now()}.mp4`;\n setState(prev => ({ \n ...prev, \n isRecording: false, \n recordedVideo: mockVideoPath \n }));\n \n // Process the video immediately\n processVideo(mockVideoPath);\n } catch (error) {\n console.error('Error stopping recording:', error);\n }\n };\n\n const processVideo = async (videoUri: string) => {\n if (state.isProcessing) return;\n\n setState(prev => ({ ...prev, isProcessing: true, error: null }));\n\n try {\n const result = await kycService.processOrientationVideo(videoUri);\n \n if (result.success && result.data) {\n setState(prev => ({ \n ...prev, \n processingResult: result.data || null,\n isProcessing: false \n }));\n onComplete(result.data);\n } else {\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: result.message || 'Processing failed' \n }));\n onError(result.message || 'Processing failed');\n }\n } catch (error) {\n console.error('Error processing video:', error);\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: 'Failed to process video' \n }));\n onError('Failed to process video');\n }\n };\n\n const retake = () => {\n if (state.retakeCount >= finalConfig.maxRetakes) {\n Alert.alert('Max Retakes Reached', 'You have reached the maximum number of retakes.');\n return;\n }\n\n setState(prev => ({ \n ...prev, \n recordedVideo: null,\n processingResult: null,\n error: null,\n retakeCount: prev.retakeCount + 1 \n }));\n setShowCamera(true);\n };\n\n const reset = () => {\n setState({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n setShowCamera(true);\n };\n\n const handleCapture = (result: { success: boolean; path?: string; error?: string }) => {\n if (result.success && result.path) {\n // For demo purposes, we'll use the photo as a video placeholder\n setState(prev => ({\n ...prev,\n recordedVideo: result.path || null\n }));\n setShowCamera(false);\n // Process the video\n processVideo(result.path);\n } else {\n setState(prev => ({ \n ...prev, \n error: result.error || 'Capture failed' \n }));\n onError(result.error || 'Capture failed');\n }\n };\n\n const renderInstructions = () => {\n if (!state.currentOrientation) return null;\n\n const instruction = finalConfig.instructions[state.currentOrientation];\n \n return (\n <Animated.View \n style={[\n styles.instructionContainer,\n { opacity: instructionAnimation }\n ]}\n >\n <Text style={styles.instructionText}>{instruction}</Text>\n </Animated.View>\n );\n };\n\n const renderProcessingResult = () => {\n if (!state.processingResult) return null;\n\n const { center, left, right } = state.processingResult;\n const allCaptured = center.captured && left.captured && right.captured;\n\n return (\n <View style={styles.resultContainer}>\n <Text style={styles.resultTitle}>\n {allCaptured ? '✅ All orientations captured!' : '⚠️ Some orientations missing'}\n </Text>\n \n <View style={styles.orientationResults}>\n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Center</Text>\n <Text style={[styles.orientationStatus, center.captured && styles.captured]}>\n {center.captured ? '✅' : '❌'}\n </Text>\n {center.captured && (\n <Text style={styles.frameInfo}>Frame: {center.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Left</Text>\n <Text style={[styles.orientationStatus, left.captured && styles.captured]}>\n {left.captured ? '✅' : '❌'}\n </Text>\n {left.captured && (\n <Text style={styles.frameInfo}>Frame: {left.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Right</Text>\n <Text style={[styles.orientationStatus, right.captured && styles.captured]}>\n {right.captured ? '✅' : '❌'}\n </Text>\n {right.captured && (\n <Text style={styles.frameInfo}>Frame: {right.frame}</Text>\n )}\n </View>\n </View>\n </View>\n );\n };\n\n if (state.recordedVideo && finalConfig.showPreview) {\n return (\n <View style={styles.container}>\n <View style={styles.videoPreview}>\n <Text style={styles.previewText}>Video recorded successfully</Text>\n <Text style={styles.previewSubtext}>Path: {state.recordedVideo}</Text>\n </View>\n \n {state.isProcessing && (\n <View style={styles.processingOverlay}>\n <ActivityIndicator size=\"large\" color=\"#007AFF\" />\n <Text style={styles.processingText}>Processing video...</Text>\n </View>\n )}\n \n {renderProcessingResult()}\n \n <View style={styles.buttonContainer}>\n {finalConfig.allowRetake && state.retakeCount < finalConfig.maxRetakes && (\n <TouchableOpacity style={styles.retakeButton} onPress={retake}>\n <Text style={styles.retakeButtonText}>\n Retake ({finalConfig.maxRetakes - state.retakeCount} left)\n </Text>\n </TouchableOpacity>\n )}\n \n <TouchableOpacity style={styles.resetButton} onPress={reset}>\n <Text style={styles.resetButtonText}>Start Over</Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n }\n\n return (\n <View style={styles.container}>\n <EnhancedCameraView\n showCamera={showCamera}\n showSwitchCamera={false}\n cameraType=\"front\"\n bbox={{\n xMin: 150,\n yMin: 210,\n xMax: 350,\n yMax: 410,\n borderColor: \"#2DBD60\",\n borderWidth: 3,\n cornerRadius: 8\n }}\n onCapture={handleCapture}\n onError={(error) => {\n setState(prev => ({ ...prev, error: error.message }));\n onError(error.message);\n }}\n overlayComponent={\n <View style={styles.overlay}>\n {renderInstructions()}\n \n {/* SideSelfieIcon overlay with mask */}\n <View style={styles.iconOverlay}>\n <Svg\n height=\"100%\"\n width=\"100%\"\n style={[StyleSheet.absoluteFill]}\n >\n <Defs>\n <Mask id=\"faceMask\">\n {/* Fond blanc - zone visible (extérieur) */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"white\"\n />\n {/* Zone noire - zone masquée (forme du visage dans le bbox) */}\n <Path\n d=\"M35.4198 48.9242C38.2153 41.9014 42.5851 35.6693 48.3859 30.8232C61.3601 19.9842 88.1543 1.5 120 1.5C151.846 1.5 178.64 19.9842 191.614 30.8232C197.415 35.6693 201.785 41.9014 204.58 48.9242C210.484 63.7564 220 93.0114 220 127.5C220 168.082 204.19 212.617 198.234 227.954C196.792 231.667 194.971 235.196 192.628 238.417C183.46 251.021 156.313 283.5 120 283.5C83.6867 283.5 56.5401 251.021 47.3723 238.417C45.0294 235.196 43.2081 231.667 41.7663 227.954C35.8102 212.617 20 168.082 20 127.5C20 93.0114 29.5157 63.7564 35.4198 48.9242Z\"\n fill=\"black\"\n transform={`translate(${bbox[0] + (bbox[2] - bbox[0]) / 2}, ${bbox[1] + (bbox[3] - bbox[1]) / 2}) scale(1) translate(-120, -142.5)`}\n />\n </Mask>\n </Defs>\n\n {/* Overlay semi-transparent avec masque */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"rgba(0, 0, 0, 0.5)\"\n mask=\"url(#faceMask)\"\n />\n <ScanningLine yMin={140} screenWidth={screenWidth} height={screenHeight} yMax={340}/>\n </Svg>\n \n {/* SideSelfieIcon positioned in the bbox */}\n <View style={[styles.iconContainer, {\n left: 20,\n top: 140,\n width: 350,\n height: 200,\n }]}>\n <FrontSelfieIcon/>\n {/* <SideSelfieIcon /> */}\n </View>\n </View>\n \n {state.error && (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>{state.error}</Text>\n </View>\n )}\n \n <View style={styles.controlsContainer}>\n {state.isRecording ? (\n <TouchableOpacity style={styles.stopButton} onPress={stopRecording}>\n <Text style={styles.stopButtonText}>Stop Recording</Text>\n </TouchableOpacity>\n ) : (\n <TouchableOpacity \n style={styles.recordButton} \n onPress={startRecording}\n disabled={state.isProcessing}\n >\n <Text style={styles.recordButtonText}>Start Recording</Text>\n </TouchableOpacity>\n )}\n </View>\n </View>\n }\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#000',\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n flex: 1,\n width: '100%',\n height: '100%',\n },\n instructionContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n padding: 15,\n borderRadius: 10,\n marginTop: 50,\n alignSelf: 'center',\n },\n instructionText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n controlsContainer: {\n alignItems: 'center',\n marginBottom: 50,\n },\n recordButton: {\n backgroundColor: '#FF3B30',\n paddingHorizontal: 30,\n paddingVertical: 15,\n borderRadius: 25,\n minWidth: 150,\n alignItems: 'center',\n },\n recordButtonText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n },\n stopButton: {\n backgroundColor: '#007AFF',\n paddingHorizontal: 30,\n paddingVertical: 15,\n borderRadius: 25,\n minWidth: 150,\n alignItems: 'center',\n },\n stopButtonText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n },\n videoPreview: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: '#f0f0f0',\n },\n previewText: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 10,\n },\n previewSubtext: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n paddingHorizontal: 20,\n },\n processingOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n processingText: {\n color: '#fff',\n fontSize: 16,\n marginTop: 10,\n },\n resultContainer: {\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n padding: 20,\n borderRadius: 10,\n margin: 20,\n },\n resultTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n marginBottom: 15,\n },\n orientationResults: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n },\n orientationResult: {\n alignItems: 'center',\n },\n orientationLabel: {\n fontSize: 14,\n fontWeight: '600',\n marginBottom: 5,\n },\n orientationStatus: {\n fontSize: 20,\n marginBottom: 5,\n },\n captured: {\n color: '#34C759',\n },\n frameInfo: {\n fontSize: 12,\n color: '#666',\n },\n buttonContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n padding: 20,\n },\n retakeButton: {\n backgroundColor: '#FF9500',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n retakeButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n resetButton: {\n backgroundColor: '#007AFF',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n resetButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n errorContainer: {\n backgroundColor: 'rgba(255, 59, 48, 0.8)',\n padding: 15,\n borderRadius: 10,\n margin: 20,\n },\n errorText: {\n color: '#fff',\n fontSize: 16,\n textAlign: 'center',\n },\n iconOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconContainer: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default OrientationVideoCaptureEnhanced; "]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { OrientationVideoConfig } from '../../types/KYC.types';
|
|
3
|
-
import
|
|
3
|
+
import kycService from '../../modules/api/KYCService';
|
|
4
4
|
interface OrientationVideoCaptureFinalProps {
|
|
5
5
|
config?: Partial<OrientationVideoConfig>;
|
|
6
6
|
onComplete: (result: any) => void;
|
|
7
7
|
onError: (error: string) => void;
|
|
8
|
-
kycService:
|
|
8
|
+
kycService: typeof kycService;
|
|
9
9
|
}
|
|
10
10
|
export declare const OrientationVideoCaptureFinal: React.FC<OrientationVideoCaptureFinalProps>;
|
|
11
11
|
export default OrientationVideoCaptureFinal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrientationVideoCaptureFinal.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/OrientationVideoCaptureFinal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAY3D,OAAO,EAAE,sBAAsB,EAAyB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"OrientationVideoCaptureFinal.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/OrientationVideoCaptureFinal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAY3D,OAAO,EAAE,sBAAsB,EAAyB,MAAM,uBAAuB,CAAC;AAEtF,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD,UAAU,iCAAiC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,OAAO,UAAU,CAAC;CAC/B;AAiBD,eAAO,MAAM,4BAA4B,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CAyUpF,CAAC;AAmKF,eAAe,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrientationVideoCaptureFinal.js","sourceRoot":"","sources":["../../../src/components/KYCElements/OrientationVideoCaptureFinal.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n Alert,\n ActivityIndicator,\n Animated,\n} from 'react-native';\nimport Svg, { Rect, Path, Mask, Defs } from 'react-native-svg';\nimport { EnhancedCameraView } from '../EnhancedCameraView';\nimport { OrientationVideoConfig, OrientationVideoState } from '../../types/KYC.types';\nimport KYCService from '../../modules/api/KYCService';\nimport SideSelfieIcon from '../Svgs/sideSelfieIcon';\n\ninterface OrientationVideoCaptureFinalProps {\n config?: Partial<OrientationVideoConfig>;\n onComplete: (result: any) => void;\n onError: (error: string) => void;\n kycService: KYCService;\n}\n\nconst defaultConfig: OrientationVideoConfig = {\n duration: 10, // 10 seconds\n orientations: ['center', 'left', 'right'],\n instructions: {\n center: 'Look straight ahead at the camera',\n left: 'Turn your head to the left',\n right: 'Turn your head to the right',\n },\n showPreview: true,\n allowRetake: true,\n maxRetakes: 3,\n quality: 0.8,\n aspectRatio: 16 / 9,\n};\n\nexport const OrientationVideoCaptureFinal: React.FC<OrientationVideoCaptureFinalProps> = ({\n config = {},\n onComplete,\n onError,\n kycService,\n}) => {\n const finalConfig = { ...defaultConfig, ...config };\n \n const [state, setState] = useState<OrientationVideoState>({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n\n const [showCamera, setShowCamera] = useState(true);\n const instructionAnimation = useRef(new Animated.Value(0)).current;\n const recordingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n startInstructionAnimation();\n }, []);\n\n useEffect(() => {\n return () => {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n }\n };\n }, []);\n\n const startInstructionAnimation = () => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(instructionAnimation, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: false,\n }),\n Animated.timing(instructionAnimation, {\n toValue: 0.8,\n duration: 1000,\n useNativeDriver: false,\n }),\n ])\n ).start();\n };\n\n const handleVideoRecordingStart = () => {\n setState(prev => ({ ...prev, isRecording: true, error: null }));\n \n // Set timeout to automatically stop recording after duration\n recordingTimeoutRef.current = setTimeout(() => {\n // The recording will be stopped automatically by the timeout\n }, finalConfig.duration * 1000);\n };\n\n const handleVideoRecordingStop = (result: { success: boolean; path?: string; error?: string }) => {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n recordingTimeoutRef.current = null;\n }\n\n if (result.success && result.path) {\n setState(prev => ({\n ...prev,\n isRecording: false,\n recordedVideo: result.path || null\n }));\n setShowCamera(false);\n // Process the video immediately\n processVideo(result.path);\n } else {\n setState(prev => ({ \n ...prev, \n isRecording: false,\n error: result.error || 'Recording failed' \n }));\n onError(result.error || 'Recording failed');\n }\n };\n\n const processVideo = async (videoUri: string) => {\n if (state.isProcessing) return;\n\n setState(prev => ({ ...prev, isProcessing: true, error: null }));\n\n try {\n const result = await kycService.processOrientationVideo(videoUri);\n \n if (result.success && result.data) {\n setState(prev => ({ \n ...prev, \n processingResult: result.data || null,\n isProcessing: false \n }));\n onComplete(result.data);\n } else {\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: result.message || 'Processing failed' \n }));\n onError(result.message || 'Processing failed');\n }\n } catch (error) {\n console.error('Error processing video:', error);\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: 'Failed to process video' \n }));\n onError('Failed to process video');\n }\n };\n\n const retake = () => {\n if (state.retakeCount >= finalConfig.maxRetakes) {\n Alert.alert('Max Retakes Reached', 'You have reached the maximum number of retakes.');\n return;\n }\n\n setState(prev => ({ \n ...prev, \n recordedVideo: null,\n processingResult: null,\n error: null,\n retakeCount: prev.retakeCount + 1 \n }));\n setShowCamera(true);\n };\n\n const reset = () => {\n setState({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n setShowCamera(true);\n };\n\n const renderInstructions = () => {\n if (!state.currentOrientation) return null;\n\n const instruction = finalConfig.instructions[state.currentOrientation];\n \n return (\n <Animated.View \n style={[\n styles.instructionContainer,\n { opacity: instructionAnimation }\n ]}\n >\n <Text style={styles.instructionText}>{instruction}</Text>\n </Animated.View>\n );\n };\n\n const renderProcessingResult = () => {\n if (!state.processingResult) return null;\n\n const { center, left, right } = state.processingResult;\n const allCaptured = center.captured && left.captured && right.captured;\n\n return (\n <View style={styles.resultContainer}>\n <Text style={styles.resultTitle}>\n {allCaptured ? '✅ All orientations captured!' : '⚠️ Some orientations missing'}\n </Text>\n \n <View style={styles.orientationResults}>\n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Center</Text>\n <Text style={[styles.orientationStatus, center.captured && styles.captured]}>\n {center.captured ? '✅' : '❌'}\n </Text>\n {center.captured && (\n <Text style={styles.frameInfo}>Frame: {center.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Left</Text>\n <Text style={[styles.orientationStatus, left.captured && styles.captured]}>\n {left.captured ? '✅' : '❌'}\n </Text>\n {left.captured && (\n <Text style={styles.frameInfo}>Frame: {left.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Right</Text>\n <Text style={[styles.orientationStatus, right.captured && styles.captured]}>\n {right.captured ? '✅' : '❌'}\n </Text>\n {right.captured && (\n <Text style={styles.frameInfo}>Frame: {right.frame}</Text>\n )}\n </View>\n </View>\n </View>\n );\n };\n\n if (state.recordedVideo && finalConfig.showPreview) {\n return (\n <View style={styles.container}>\n <View style={styles.videoPreview}>\n <Text style={styles.previewText}>Video recorded successfully</Text>\n <Text style={styles.previewSubtext}>Path: {state.recordedVideo}</Text>\n <Text style={styles.previewSubtext}>Duration: {finalConfig.duration} seconds</Text>\n </View>\n \n {state.isProcessing && (\n <View style={styles.processingOverlay}>\n <ActivityIndicator size=\"large\" color=\"#007AFF\" />\n <Text style={styles.processingText}>Processing video...</Text>\n </View>\n )}\n \n {renderProcessingResult()}\n \n <View style={styles.buttonContainer}>\n {finalConfig.allowRetake && state.retakeCount < finalConfig.maxRetakes && (\n <TouchableOpacity style={styles.retakeButton} onPress={retake}>\n <Text style={styles.retakeButtonText}>\n Retake ({finalConfig.maxRetakes - state.retakeCount} left)\n </Text>\n </TouchableOpacity>\n )}\n \n <TouchableOpacity style={styles.resetButton} onPress={reset}>\n <Text style={styles.resetButtonText}>Start Over</Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n }\n\n return (\n <View style={styles.container}>\n <EnhancedCameraView\n showCamera={showCamera}\n showSwitchCamera={false}\n cameraType=\"front\"\n enableVideo={true}\n isRecording={state.isRecording}\n onVideoRecordingStart={handleVideoRecordingStart}\n onVideoRecordingStop={handleVideoRecordingStop}\n onError={(error) => {\n setState(prev => ({ ...prev, error: error.message }));\n onError(error.message);\n }}\n overlayComponent={\n <View style={styles.overlay}>\n {renderInstructions()}\n \n {/* SideSelfieIcon overlay with mask */}\n <View style={styles.iconOverlay}>\n <Svg\n height=\"100%\"\n width=\"100%\"\n style={StyleSheet.absoluteFill}\n >\n <Defs>\n <Mask id=\"faceMask\">\n {/* Fond blanc - zone visible (extérieur) */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"white\"\n />\n {/* Zone noire - zone masquée (forme du visage dans le bbox) */}\n <Path\n d=\"M35.4198 48.9242C38.2153 41.9014 42.5851 35.6693 48.3859 30.8232C61.3601 19.9842 88.1543 1.5 120 1.5C151.846 1.5 178.64 19.9842 191.614 30.8232C197.415 35.6693 201.785 41.9014 204.58 48.9242C210.484 63.7564 220 93.0114 220 127.5C220 168.082 204.19 212.617 198.234 227.954C196.792 231.667 194.971 235.196 192.628 238.417C183.46 251.021 156.313 283.5 120 283.5C83.6867 283.5 56.5401 251.021 47.3723 238.417C45.0294 235.196 43.2081 231.667 41.7663 227.954C35.8102 212.617 20 168.082 20 127.5C20 93.0114 29.5157 63.7564 35.4198 48.9242Z\"\n fill=\"black\"\n transform=\"translate(195, 240) scale(0.8) translate(-120, -142.5)\"\n />\n </Mask>\n </Defs>\n\n {/* Overlay semi-transparent avec masque */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"rgba(0, 0, 0, 0.5)\"\n mask=\"url(#faceMask)\"\n />\n </Svg>\n \n {/* SideSelfieIcon positioned in the bbox */}\n <View style={[styles.iconContainer, {\n left: 20,\n top: 140,\n width: 350,\n height: 200,\n }]}>\n <SideSelfieIcon />\n </View>\n </View>\n \n {state.error && (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>{state.error}</Text>\n </View>\n )}\n \n {state.isRecording && (\n <View style={styles.recordingIndicator}>\n <Text style={styles.recordingText}>Recording... {finalConfig.duration}s</Text>\n </View>\n )}\n </View>\n }\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#000',\n },\n overlay: {\n flex: 1,\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n justifyContent: 'space-between',\n padding: 20,\n },\n instructionContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n padding: 15,\n borderRadius: 10,\n marginTop: 50,\n alignSelf: 'center',\n },\n instructionText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n recordingIndicator: {\n backgroundColor: 'rgba(255, 59, 48, 0.8)',\n padding: 10,\n borderRadius: 20,\n alignSelf: 'center',\n marginTop: 20,\n },\n recordingText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: 'bold',\n },\n videoPreview: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: '#f0f0f0',\n },\n previewText: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 10,\n },\n previewSubtext: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n paddingHorizontal: 20,\n marginBottom: 5,\n },\n processingOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n processingText: {\n color: '#fff',\n fontSize: 16,\n marginTop: 10,\n },\n resultContainer: {\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n padding: 20,\n borderRadius: 10,\n margin: 20,\n },\n resultTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n marginBottom: 15,\n },\n orientationResults: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n },\n orientationResult: {\n alignItems: 'center',\n },\n orientationLabel: {\n fontSize: 14,\n fontWeight: '600',\n marginBottom: 5,\n },\n orientationStatus: {\n fontSize: 20,\n marginBottom: 5,\n },\n captured: {\n color: '#34C759',\n },\n frameInfo: {\n fontSize: 12,\n color: '#666',\n },\n buttonContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n padding: 20,\n },\n retakeButton: {\n backgroundColor: '#FF9500',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n retakeButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n resetButton: {\n backgroundColor: '#007AFF',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n resetButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n errorContainer: {\n backgroundColor: 'rgba(255, 59, 48, 0.8)',\n padding: 15,\n borderRadius: 10,\n margin: 20,\n },\n errorText: {\n color: '#fff',\n fontSize: 16,\n textAlign: 'center',\n },\n iconOverlay: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: [{ translateX: -120 }, { translateY: -142.5 }], // Half of width and height\n opacity: 1,\n zIndex: 10,\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n borderRadius: 10,\n padding: 10,\n },\n iconContainer: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default OrientationVideoCaptureFinal; "]}
|
|
1
|
+
{"version":3,"file":"OrientationVideoCaptureFinal.js","sourceRoot":"","sources":["../../../src/components/KYCElements/OrientationVideoCaptureFinal.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n Alert,\n ActivityIndicator,\n Animated,\n} from 'react-native';\nimport Svg, { Rect, Path, Mask, Defs } from 'react-native-svg';\nimport { EnhancedCameraView } from '../EnhancedCameraView';\nimport { OrientationVideoConfig, OrientationVideoState } from '../../types/KYC.types';\nimport SideSelfieIcon from '../Svgs/sideSelfieIcon';\nimport kycService from '../../modules/api/KYCService';\n\ninterface OrientationVideoCaptureFinalProps {\n config?: Partial<OrientationVideoConfig>;\n onComplete: (result: any) => void;\n onError: (error: string) => void;\n kycService: typeof kycService;\n}\n\nconst defaultConfig: OrientationVideoConfig = {\n duration: 10, // 10 seconds\n orientations: ['center', 'left', 'right'],\n instructions: {\n center: 'Look straight ahead at the camera',\n left: 'Turn your head to the left',\n right: 'Turn your head to the right',\n },\n showPreview: true,\n allowRetake: true,\n maxRetakes: 3,\n quality: 0.8,\n aspectRatio: 16 / 9,\n};\n\nexport const OrientationVideoCaptureFinal: React.FC<OrientationVideoCaptureFinalProps> = ({\n config = {},\n onComplete,\n onError,\n kycService,\n}) => {\n const finalConfig = { ...defaultConfig, ...config };\n \n const [state, setState] = useState<OrientationVideoState>({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n\n const [showCamera, setShowCamera] = useState(true);\n const instructionAnimation = useRef(new Animated.Value(0)).current;\n const recordingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n startInstructionAnimation();\n }, []);\n\n useEffect(() => {\n return () => {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n }\n };\n }, []);\n\n const startInstructionAnimation = () => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(instructionAnimation, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: false,\n }),\n Animated.timing(instructionAnimation, {\n toValue: 0.8,\n duration: 1000,\n useNativeDriver: false,\n }),\n ])\n ).start();\n };\n\n const handleVideoRecordingStart = () => {\n setState(prev => ({ ...prev, isRecording: true, error: null }));\n \n // Set timeout to automatically stop recording after duration\n recordingTimeoutRef.current = setTimeout(() => {\n // The recording will be stopped automatically by the timeout\n }, finalConfig.duration * 1000);\n };\n\n const handleVideoRecordingStop = (result: { success: boolean; path?: string; error?: string }) => {\n if (recordingTimeoutRef.current) {\n clearTimeout(recordingTimeoutRef.current);\n recordingTimeoutRef.current = null;\n }\n\n if (result.success && result.path) {\n setState(prev => ({\n ...prev,\n isRecording: false,\n recordedVideo: result.path || null\n }));\n setShowCamera(false);\n // Process the video immediately\n processVideo(result.path);\n } else {\n setState(prev => ({ \n ...prev, \n isRecording: false,\n error: result.error || 'Recording failed' \n }));\n onError(result.error || 'Recording failed');\n }\n };\n\n const processVideo = async (videoUri: string) => {\n if (state.isProcessing) return;\n\n setState(prev => ({ ...prev, isProcessing: true, error: null }));\n\n try {\n const result = await kycService.processOrientationVideo(videoUri);\n \n if (result.success && result.data) {\n setState(prev => ({ \n ...prev, \n processingResult: result.data || null,\n isProcessing: false \n }));\n onComplete(result.data);\n } else {\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: result.message || 'Processing failed' \n }));\n onError(result.message || 'Processing failed');\n }\n } catch (error) {\n console.error('Error processing video:', error);\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: 'Failed to process video' \n }));\n onError('Failed to process video');\n }\n };\n\n const retake = () => {\n if (state.retakeCount >= finalConfig.maxRetakes) {\n Alert.alert('Max Retakes Reached', 'You have reached the maximum number of retakes.');\n return;\n }\n\n setState(prev => ({ \n ...prev, \n recordedVideo: null,\n processingResult: null,\n error: null,\n retakeCount: prev.retakeCount + 1 \n }));\n setShowCamera(true);\n };\n\n const reset = () => {\n setState({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n setShowCamera(true);\n };\n\n const renderInstructions = () => {\n if (!state.currentOrientation) return null;\n\n const instruction = finalConfig.instructions[state.currentOrientation];\n \n return (\n <Animated.View \n style={[\n styles.instructionContainer,\n { opacity: instructionAnimation }\n ]}\n >\n <Text style={styles.instructionText}>{instruction}</Text>\n </Animated.View>\n );\n };\n\n const renderProcessingResult = () => {\n if (!state.processingResult) return null;\n\n const { center, left, right } = state.processingResult;\n const allCaptured = center.captured && left.captured && right.captured;\n\n return (\n <View style={styles.resultContainer}>\n <Text style={styles.resultTitle}>\n {allCaptured ? '✅ All orientations captured!' : '⚠️ Some orientations missing'}\n </Text>\n \n <View style={styles.orientationResults}>\n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Center</Text>\n <Text style={[styles.orientationStatus, center.captured && styles.captured]}>\n {center.captured ? '✅' : '❌'}\n </Text>\n {center.captured && (\n <Text style={styles.frameInfo}>Frame: {center.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Left</Text>\n <Text style={[styles.orientationStatus, left.captured && styles.captured]}>\n {left.captured ? '✅' : '❌'}\n </Text>\n {left.captured && (\n <Text style={styles.frameInfo}>Frame: {left.frame}</Text>\n )}\n </View>\n \n <View style={styles.orientationResult}>\n <Text style={styles.orientationLabel}>Right</Text>\n <Text style={[styles.orientationStatus, right.captured && styles.captured]}>\n {right.captured ? '✅' : '❌'}\n </Text>\n {right.captured && (\n <Text style={styles.frameInfo}>Frame: {right.frame}</Text>\n )}\n </View>\n </View>\n </View>\n );\n };\n\n if (state.recordedVideo && finalConfig.showPreview) {\n return (\n <View style={styles.container}>\n <View style={styles.videoPreview}>\n <Text style={styles.previewText}>Video recorded successfully</Text>\n <Text style={styles.previewSubtext}>Path: {state.recordedVideo}</Text>\n <Text style={styles.previewSubtext}>Duration: {finalConfig.duration} seconds</Text>\n </View>\n \n {state.isProcessing && (\n <View style={styles.processingOverlay}>\n <ActivityIndicator size=\"large\" color=\"#007AFF\" />\n <Text style={styles.processingText}>Processing video...</Text>\n </View>\n )}\n \n {renderProcessingResult()}\n \n <View style={styles.buttonContainer}>\n {finalConfig.allowRetake && state.retakeCount < finalConfig.maxRetakes && (\n <TouchableOpacity style={styles.retakeButton} onPress={retake}>\n <Text style={styles.retakeButtonText}>\n Retake ({finalConfig.maxRetakes - state.retakeCount} left)\n </Text>\n </TouchableOpacity>\n )}\n \n <TouchableOpacity style={styles.resetButton} onPress={reset}>\n <Text style={styles.resetButtonText}>Start Over</Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n }\n\n return (\n <View style={styles.container}>\n <EnhancedCameraView\n showCamera={showCamera}\n showSwitchCamera={false}\n cameraType=\"front\"\n enableVideo={true}\n isRecording={state.isRecording}\n onVideoRecordingStart={handleVideoRecordingStart}\n onVideoRecordingStop={handleVideoRecordingStop}\n onError={(error) => {\n setState(prev => ({ ...prev, error: error.message }));\n onError(error.message);\n }}\n overlayComponent={\n <View style={styles.overlay}>\n {renderInstructions()}\n \n {/* SideSelfieIcon overlay with mask */}\n <View style={styles.iconOverlay}>\n <Svg\n height=\"100%\"\n width=\"100%\"\n style={StyleSheet.absoluteFill}\n >\n <Defs>\n <Mask id=\"faceMask\">\n {/* Fond blanc - zone visible (extérieur) */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"white\"\n />\n {/* Zone noire - zone masquée (forme du visage dans le bbox) */}\n <Path\n d=\"M35.4198 48.9242C38.2153 41.9014 42.5851 35.6693 48.3859 30.8232C61.3601 19.9842 88.1543 1.5 120 1.5C151.846 1.5 178.64 19.9842 191.614 30.8232C197.415 35.6693 201.785 41.9014 204.58 48.9242C210.484 63.7564 220 93.0114 220 127.5C220 168.082 204.19 212.617 198.234 227.954C196.792 231.667 194.971 235.196 192.628 238.417C183.46 251.021 156.313 283.5 120 283.5C83.6867 283.5 56.5401 251.021 47.3723 238.417C45.0294 235.196 43.2081 231.667 41.7663 227.954C35.8102 212.617 20 168.082 20 127.5C20 93.0114 29.5157 63.7564 35.4198 48.9242Z\"\n fill=\"black\"\n transform=\"translate(195, 240) scale(0.8) translate(-120, -142.5)\"\n />\n </Mask>\n </Defs>\n\n {/* Overlay semi-transparent avec masque */}\n <Rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"rgba(0, 0, 0, 0.5)\"\n mask=\"url(#faceMask)\"\n />\n </Svg>\n \n {/* SideSelfieIcon positioned in the bbox */}\n <View style={[styles.iconContainer, {\n left: 20,\n top: 140,\n width: 350,\n height: 200,\n }]}>\n <SideSelfieIcon />\n </View>\n </View>\n \n {state.error && (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>{state.error}</Text>\n </View>\n )}\n \n {state.isRecording && (\n <View style={styles.recordingIndicator}>\n <Text style={styles.recordingText}>Recording... {finalConfig.duration}s</Text>\n </View>\n )}\n </View>\n }\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#000',\n },\n overlay: {\n flex: 1,\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n justifyContent: 'space-between',\n padding: 20,\n },\n instructionContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n padding: 15,\n borderRadius: 10,\n marginTop: 50,\n alignSelf: 'center',\n },\n instructionText: {\n color: '#fff',\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n recordingIndicator: {\n backgroundColor: 'rgba(255, 59, 48, 0.8)',\n padding: 10,\n borderRadius: 20,\n alignSelf: 'center',\n marginTop: 20,\n },\n recordingText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: 'bold',\n },\n videoPreview: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: '#f0f0f0',\n },\n previewText: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 10,\n },\n previewSubtext: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n paddingHorizontal: 20,\n marginBottom: 5,\n },\n processingOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n processingText: {\n color: '#fff',\n fontSize: 16,\n marginTop: 10,\n },\n resultContainer: {\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n padding: 20,\n borderRadius: 10,\n margin: 20,\n },\n resultTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n marginBottom: 15,\n },\n orientationResults: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n },\n orientationResult: {\n alignItems: 'center',\n },\n orientationLabel: {\n fontSize: 14,\n fontWeight: '600',\n marginBottom: 5,\n },\n orientationStatus: {\n fontSize: 20,\n marginBottom: 5,\n },\n captured: {\n color: '#34C759',\n },\n frameInfo: {\n fontSize: 12,\n color: '#666',\n },\n buttonContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n padding: 20,\n },\n retakeButton: {\n backgroundColor: '#FF9500',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n retakeButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n resetButton: {\n backgroundColor: '#007AFF',\n paddingHorizontal: 20,\n paddingVertical: 10,\n borderRadius: 20,\n },\n resetButtonText: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n errorContainer: {\n backgroundColor: 'rgba(255, 59, 48, 0.8)',\n padding: 15,\n borderRadius: 10,\n margin: 20,\n },\n errorText: {\n color: '#fff',\n fontSize: 16,\n textAlign: 'center',\n },\n iconOverlay: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: [{ translateX: -120 }, { translateY: -142.5 }], // Half of width and height\n opacity: 1,\n zIndex: 10,\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n borderRadius: 10,\n padding: 10,\n },\n iconContainer: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default OrientationVideoCaptureFinal; "]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TemplateComponent } from '../../types/KYC.types';
|
|
3
|
+
interface ReviewSubmitTemplateProps {
|
|
4
|
+
component: TemplateComponent;
|
|
5
|
+
value: unknown;
|
|
6
|
+
onValueChange: (data: unknown) => void;
|
|
7
|
+
error?: string;
|
|
8
|
+
language?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const ReviewSubmitTemplate: React.FC<ReviewSubmitTemplateProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ReviewSubmitTemplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewSubmitTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/ReviewSubmitTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI1D,UAAU,yBAAyB;IACjC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsGpE,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { View, Text, StyleSheet, TouchableOpacity, ScrollView } from 'react-native';
|
|
3
|
+
import { useTemplateKYCFlowContext } from '../../hooks/useTemplateKYCFlow';
|
|
4
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
5
|
+
export const ReviewSubmitTemplate = () => {
|
|
6
|
+
const { t } = useI18n();
|
|
7
|
+
const { state, actions, getLocalizedText } = useTemplateKYCFlowContext();
|
|
8
|
+
const idSection = useMemo(() => {
|
|
9
|
+
const idComp = state.template.components.find(c => c.type === 'id_card');
|
|
10
|
+
return idComp ? state.componentData[idComp.id] : null;
|
|
11
|
+
}, [state.template.components, state.componentData]);
|
|
12
|
+
// Helper to coerce possibly-nested localized configs into the expected shape
|
|
13
|
+
const coerceLocalized = (value, fallback) => {
|
|
14
|
+
if (value && typeof value === 'object') {
|
|
15
|
+
if (typeof value.en === 'string' || typeof value.fr === 'string') {
|
|
16
|
+
return {
|
|
17
|
+
en: typeof value.en === 'string' ? value.en : fallback.en,
|
|
18
|
+
fr: typeof value.fr === 'string' ? value.fr : fallback.fr,
|
|
19
|
+
...value,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return fallback;
|
|
24
|
+
};
|
|
25
|
+
// const reviewComp = useMemo(() => {
|
|
26
|
+
// return state.template.components.find(c => c.type === 'review_submit');
|
|
27
|
+
// }, [state.template.components]);
|
|
28
|
+
const dynamicComponents = useMemo(() => {
|
|
29
|
+
return state.template.components.filter(c => c.type !== 'review_submit' && c.type !== 'verification_progress');
|
|
30
|
+
}, [state.template.components]);
|
|
31
|
+
const handleSubmit = async () => {
|
|
32
|
+
await actions.nextComponent();
|
|
33
|
+
};
|
|
34
|
+
return (<View style={styles.container}>
|
|
35
|
+
<Text style={styles.title}>{t('kyc.reviewSubmit.title')}</Text>
|
|
36
|
+
<Text style={styles.subtitle}>{t('kyc.reviewSubmit.subtitle')}</Text>
|
|
37
|
+
|
|
38
|
+
<ScrollView contentContainerStyle={styles.scrollContent}>
|
|
39
|
+
{dynamicComponents.map((comp) => {
|
|
40
|
+
const compData = state.componentData[comp.id] || {};
|
|
41
|
+
const isCompleted = state.completedComponents.includes(comp.id);
|
|
42
|
+
if (comp.type === 'id_card') {
|
|
43
|
+
const hasFront = !!(compData.front || compData.front_base64 || compData.front_mrz);
|
|
44
|
+
const hasBack = !!(compData.back || compData.back_base64 || compData.back_mrz);
|
|
45
|
+
return (<View key={comp.id} style={styles.section}>
|
|
46
|
+
<Text style={styles.sectionTitle}>{t('kyc.reviewSubmit.documentInfo')}</Text>
|
|
47
|
+
<View style={styles.row}>
|
|
48
|
+
<View style={[styles.tile, hasFront ? styles.active : null]}>
|
|
49
|
+
<Text style={styles.tileLabel}>{t('kyc.idCardCapture.frontSide')}</Text>
|
|
50
|
+
{hasFront ? <Text style={styles.check}>✓</Text> : null}
|
|
51
|
+
</View>
|
|
52
|
+
<View style={[styles.tile, hasBack ? styles.active : null]}>
|
|
53
|
+
<Text style={styles.tileLabel}>{t('kyc.idCardCapture.backSide')}</Text>
|
|
54
|
+
{hasBack ? <Text style={styles.check}>✓</Text> : null}
|
|
55
|
+
</View>
|
|
56
|
+
</View>
|
|
57
|
+
{idSection?.documentType ? (<Text style={styles.caption}>{idSection.documentType}</Text>) : null}
|
|
58
|
+
</View>);
|
|
59
|
+
}
|
|
60
|
+
if (comp.type === 'selfie') {
|
|
61
|
+
const orientations = (comp.config?.orientations || ['center', 'right', 'left']);
|
|
62
|
+
return (<View key={comp.id} style={styles.section}>
|
|
63
|
+
<Text style={styles.sectionTitle}>{t('kyc.selfieCapture.title')}</Text>
|
|
64
|
+
<View style={styles.row}>
|
|
65
|
+
{orientations.map((o) => {
|
|
66
|
+
const has = !!compData[o];
|
|
67
|
+
const colorStyle = o === 'center' ? styles.pink : o === 'right' ? styles.blue : styles.purple;
|
|
68
|
+
return (<View key={o} style={[styles.tile, colorStyle, has ? styles.active : null]}>
|
|
69
|
+
<Text style={styles.tileLabel}>{o.charAt(0).toUpperCase() + o.slice(1)}</Text>
|
|
70
|
+
{has ? <Text style={styles.check}>✓</Text> : null}
|
|
71
|
+
</View>);
|
|
72
|
+
})}
|
|
73
|
+
</View>
|
|
74
|
+
<Text style={styles.caption}>{t('kyc.selfieCapture.success')}</Text>
|
|
75
|
+
</View>);
|
|
76
|
+
}
|
|
77
|
+
// Generic fallback for other component types
|
|
78
|
+
return (<View key={comp.id} style={styles.section}>
|
|
79
|
+
<Text style={styles.sectionTitle}>{getLocalizedText(coerceLocalized(comp.labels, { en: comp.type, fr: comp.type }))}</Text>
|
|
80
|
+
<Text style={styles.caption}>{isCompleted ? t('common.success') : t('kyc.verificationProgress.status.pending')}</Text>
|
|
81
|
+
</View>);
|
|
82
|
+
})}
|
|
83
|
+
</ScrollView>
|
|
84
|
+
|
|
85
|
+
<TouchableOpacity style={[styles.button, styles.primary]} onPress={handleSubmit}>
|
|
86
|
+
<Text style={styles.buttonText}>{t('kyc.reviewSubmit.submitButton')}</Text>
|
|
87
|
+
</TouchableOpacity>
|
|
88
|
+
</View>);
|
|
89
|
+
};
|
|
90
|
+
const styles = StyleSheet.create({
|
|
91
|
+
container: {
|
|
92
|
+
flex: 1,
|
|
93
|
+
width: '100%',
|
|
94
|
+
paddingHorizontal: 16,
|
|
95
|
+
paddingVertical: 12,
|
|
96
|
+
},
|
|
97
|
+
title: {
|
|
98
|
+
fontSize: 24,
|
|
99
|
+
fontWeight: 'bold',
|
|
100
|
+
color: '#111827',
|
|
101
|
+
marginBottom: 4,
|
|
102
|
+
},
|
|
103
|
+
subtitle: {
|
|
104
|
+
fontSize: 14,
|
|
105
|
+
color: '#6B7280',
|
|
106
|
+
marginBottom: 16,
|
|
107
|
+
},
|
|
108
|
+
section: {
|
|
109
|
+
backgroundColor: 'white',
|
|
110
|
+
borderRadius: 16,
|
|
111
|
+
padding: 16,
|
|
112
|
+
marginBottom: 16,
|
|
113
|
+
},
|
|
114
|
+
sectionTitle: {
|
|
115
|
+
fontSize: 18,
|
|
116
|
+
fontWeight: '700',
|
|
117
|
+
color: '#111827',
|
|
118
|
+
marginBottom: 12,
|
|
119
|
+
},
|
|
120
|
+
scrollContent: {
|
|
121
|
+
paddingBottom: 24,
|
|
122
|
+
},
|
|
123
|
+
row: {
|
|
124
|
+
flexDirection: 'row',
|
|
125
|
+
gap: 12,
|
|
126
|
+
},
|
|
127
|
+
tile: {
|
|
128
|
+
flex: 1,
|
|
129
|
+
height: 110,
|
|
130
|
+
borderRadius: 16,
|
|
131
|
+
backgroundColor: '#F3F4F6',
|
|
132
|
+
alignItems: 'center',
|
|
133
|
+
justifyContent: 'center',
|
|
134
|
+
},
|
|
135
|
+
tileLabel: {
|
|
136
|
+
fontSize: 14,
|
|
137
|
+
color: '#111827',
|
|
138
|
+
marginBottom: 8,
|
|
139
|
+
},
|
|
140
|
+
check: {
|
|
141
|
+
fontSize: 18,
|
|
142
|
+
color: '#10B981',
|
|
143
|
+
fontWeight: '700',
|
|
144
|
+
},
|
|
145
|
+
active: {
|
|
146
|
+
backgroundColor: '#DDE9FF',
|
|
147
|
+
},
|
|
148
|
+
pink: { backgroundColor: '#FDE2E7' },
|
|
149
|
+
blue: { backgroundColor: '#DDE9FF' },
|
|
150
|
+
purple: { backgroundColor: '#EDE2FF' },
|
|
151
|
+
caption: {
|
|
152
|
+
marginTop: 10,
|
|
153
|
+
fontSize: 12,
|
|
154
|
+
color: '#6B7280',
|
|
155
|
+
},
|
|
156
|
+
button: {
|
|
157
|
+
paddingVertical: 14,
|
|
158
|
+
borderRadius: 10,
|
|
159
|
+
alignItems: 'center',
|
|
160
|
+
marginTop: 12,
|
|
161
|
+
},
|
|
162
|
+
primary: {
|
|
163
|
+
backgroundColor: '#2DBD60',
|
|
164
|
+
},
|
|
165
|
+
buttonText: {
|
|
166
|
+
color: 'white',
|
|
167
|
+
fontSize: 16,
|
|
168
|
+
fontWeight: '600',
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
//# sourceMappingURL=ReviewSubmitTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewSubmitTemplate.js","sourceRoot":"","sources":["../../../src/components/KYCElements/ReviewSubmitTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { View, Text, StyleSheet, TouchableOpacity, ScrollView } from 'react-native';\nimport { TemplateComponent } from '../../types/KYC.types';\nimport { useTemplateKYCFlowContext } from '../../hooks/useTemplateKYCFlow';\nimport { useI18n } from '../../hooks/useI18n';\n\ninterface ReviewSubmitTemplateProps {\n component: TemplateComponent;\n value: unknown;\n onValueChange: (data: unknown) => void;\n error?: string;\n language?: string;\n}\n\nexport const ReviewSubmitTemplate: React.FC<ReviewSubmitTemplateProps> = () => {\n const { t } = useI18n();\n const { state, actions, getLocalizedText } = useTemplateKYCFlowContext();\n\n const idSection = useMemo(() => {\n const idComp = state.template.components.find(c => c.type === 'id_card');\n return idComp ? state.componentData[idComp.id] : null;\n }, [state.template.components, state.componentData]);\n\n // Helper to coerce possibly-nested localized configs into the expected shape\n const coerceLocalized = (value: any, fallback: { en: string; fr: string }) => {\n if (value && typeof value === 'object') {\n if (typeof value.en === 'string' || typeof value.fr === 'string') {\n return {\n en: typeof value.en === 'string' ? value.en : fallback.en,\n fr: typeof value.fr === 'string' ? value.fr : fallback.fr,\n ...value,\n } as { [key: string]: string; en: string; fr: string };\n }\n }\n return fallback;\n };\n\n // const reviewComp = useMemo(() => {\n // return state.template.components.find(c => c.type === 'review_submit');\n // }, [state.template.components]);\n\n const dynamicComponents = useMemo(() => {\n return state.template.components.filter(c => c.type !== 'review_submit' && c.type !== 'verification_progress');\n }, [state.template.components]);\n\n const handleSubmit = async () => {\n await actions.nextComponent();\n };\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.reviewSubmit.title')}</Text>\n <Text style={styles.subtitle}>{t('kyc.reviewSubmit.subtitle')}</Text>\n\n <ScrollView contentContainerStyle={styles.scrollContent}>\n {dynamicComponents.map((comp) => {\n const compData = state.componentData[comp.id] || {};\n const isCompleted = state.completedComponents.includes(comp.id);\n if (comp.type === 'id_card') {\n const hasFront = !!(compData.front || compData.front_base64 || compData.front_mrz);\n const hasBack = !!(compData.back || compData.back_base64 || compData.back_mrz);\n return (\n <View key={comp.id} style={styles.section}>\n <Text style={styles.sectionTitle}>{t('kyc.reviewSubmit.documentInfo')}</Text>\n <View style={styles.row}>\n <View style={[styles.tile, hasFront ? styles.active : null]}>\n <Text style={styles.tileLabel}>{t('kyc.idCardCapture.frontSide')}</Text>\n {hasFront ? <Text style={styles.check}>✓</Text> : null}\n </View>\n <View style={[styles.tile, hasBack ? styles.active : null]}>\n <Text style={styles.tileLabel}>{t('kyc.idCardCapture.backSide')}</Text>\n {hasBack ? <Text style={styles.check}>✓</Text> : null}\n </View>\n </View>\n {idSection?.documentType ? (\n <Text style={styles.caption}>{idSection.documentType}</Text>\n ) : null}\n </View>\n );\n }\n if (comp.type === 'selfie') {\n const orientations = ((comp.config as any)?.orientations || ['center', 'right', 'left']) as string[];\n return (\n <View key={comp.id} style={styles.section}>\n <Text style={styles.sectionTitle}>{t('kyc.selfieCapture.title')}</Text>\n <View style={styles.row}>\n {orientations.map((o) => {\n const has = !!compData[o];\n const colorStyle = o === 'center' ? styles.pink : o === 'right' ? styles.blue : styles.purple;\n return (\n <View key={o} style={[styles.tile, colorStyle, has ? styles.active : null]}>\n <Text style={styles.tileLabel}>{o.charAt(0).toUpperCase() + o.slice(1)}</Text>\n {has ? <Text style={styles.check}>✓</Text> : null}\n </View>\n );\n })}\n </View>\n <Text style={styles.caption}>{t('kyc.selfieCapture.success')}</Text>\n </View>\n );\n }\n // Generic fallback for other component types\n return (\n <View key={comp.id} style={styles.section}>\n <Text style={styles.sectionTitle}>{getLocalizedText(coerceLocalized(comp.labels, { en: comp.type, fr: comp.type }))}</Text>\n <Text style={styles.caption}>{isCompleted ? t('common.success') : t('kyc.verificationProgress.status.pending')}</Text>\n </View>\n );\n })}\n </ScrollView>\n\n <TouchableOpacity style={[styles.button, styles.primary]} onPress={handleSubmit}>\n <Text style={styles.buttonText}>{t('kyc.reviewSubmit.submitButton')}</Text>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n paddingHorizontal: 16,\n paddingVertical: 12,\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n color: '#111827',\n marginBottom: 4,\n },\n subtitle: {\n fontSize: 14,\n color: '#6B7280',\n marginBottom: 16,\n },\n section: {\n backgroundColor: 'white',\n borderRadius: 16,\n padding: 16,\n marginBottom: 16,\n },\n sectionTitle: {\n fontSize: 18,\n fontWeight: '700',\n color: '#111827',\n marginBottom: 12,\n },\n scrollContent: {\n paddingBottom: 24,\n },\n row: {\n flexDirection: 'row',\n gap: 12,\n },\n tile: {\n flex: 1,\n height: 110,\n borderRadius: 16,\n backgroundColor: '#F3F4F6',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tileLabel: {\n fontSize: 14,\n color: '#111827',\n marginBottom: 8,\n },\n check: {\n fontSize: 18,\n color: '#10B981',\n fontWeight: '700',\n },\n active: {\n backgroundColor: '#DDE9FF',\n },\n pink: { backgroundColor: '#FDE2E7' },\n blue: { backgroundColor: '#DDE9FF' },\n purple: { backgroundColor: '#EDE2FF' },\n caption: {\n marginTop: 10,\n fontSize: 12,\n color: '#6B7280',\n },\n button: {\n paddingVertical: 14,\n borderRadius: 10,\n alignItems: 'center',\n marginTop: 12,\n },\n primary: {\n backgroundColor: '#2DBD60',\n },\n buttonText: {\n color: 'white',\n fontSize: 16,\n fontWeight: '600',\n },\n});\n\n\n"]}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TemplateComponent } from '../../types/KYC.types';
|
|
3
|
+
interface IImagePayload {
|
|
4
|
+
dir: string;
|
|
5
|
+
file: string;
|
|
6
|
+
}
|
|
3
7
|
interface SelfieCaptureTemplateProps {
|
|
4
8
|
component: TemplateComponent;
|
|
5
|
-
value: Record<string,
|
|
6
|
-
onValueChange: (value: Record<string,
|
|
9
|
+
value: Record<string, IImagePayload> | undefined;
|
|
10
|
+
onValueChange: (value: Record<string, IImagePayload>) => void;
|
|
7
11
|
error?: string;
|
|
8
12
|
language: string;
|
|
9
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelfieCaptureTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/SelfieCaptureTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"SelfieCaptureTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/SelfieCaptureTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAsE,MAAM,uBAAuB,CAAC;AAS9H,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AACD,UAAU,0BAA0B;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC;IACjD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAkTtE,CAAC"}
|